hive-tez

article/2025/11/1 3:30:16

1 参考:
https://www.freesion.com/article/9435149734/
https://blog.csdn.net/Shea1992/article/details/101041244
https://www.jianshu.com/p/9fb9f32e1f0f
https://www.jianshu.com/p/45c95a51a8c2
https://blog.csdn.net/weixin_43941899/article/details/105787688
2 我的环境:
hadoop版本:3.0.0-cdh6.3.2
linux环境:centos7.6
jdk1.8.0_131
3 安装maven
3.1 下载maven
https://maven.apache.org/download.cgi
在这里插入图片描述

3.2上传解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /data/module

3.3 配置 MVN_HOMR
[root@cluster2-slave2 ~]# vim /etc/profile

export MVN_HOME=/data/module/apache-maven-3.6.3
export PATH= P A T H : PATH: PATH:MVN_HOME/bin
[root@cluster2-slave2 ~]# source /etc/profile

3.4 验证maven
[root@cluster2-slave2 ~]# mvn -v
在这里插入图片描述

4 安装protobuf-2.5.0.tar.gz
4.1 下载
只能是2.5.0这个版本

因为后面安装tez0.91的时候加压后在pom.xml里可以看到,要求就是2.5.0的
在这里插入图片描述

hadoop使用protocol buffer进行通信,需要下载和安装 protobuf-2.5.0.tar.gz。

但是现在 protobuf-2.5.0.tar.gz已经无法在官网 https://code.google.com/p/protobuf/downloads/list中 下载了

我在百度网盘找到了下载链接这里附上下载链接

链接:https://pan.baidu.com/s/1hm7D2_wxIxMKbN9xnlYWuA
提取码:haz4
复制这段内容后打开百度网盘手机App,操作更方便哦
4.2 上传解压
tar -zxvf protobuf-2.5.0.tar.gz

4.3 configure校验
cd protobuf-2.5.0/

[root@cluster2-slave2 protobuf-2.5.0]# ./configure
第一次我校验失败:

checking whether to enable maintainer-specific portions of Makefiles… yes
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking target system type… x86_64-unknown-linux-gnu
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /usr/bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for style of include used by make… GNU
checking dependency style of gcc… gcc3
checking for g++… no
checking for c++… no
checking for gpp… no
checking for aCC… no
checking for CC… no
checking for cxx… no
checking for cc++… no
checking for cl.exe… no
checking for FCC… no
checking for KCC… no
checking for RCC… no
checking for xlC_r… no
checking for xlC… no
checking whether we are using the GNU C++ compiler… no
checking whether g++ accepts -g… no
checking dependency style of g++… none
checking how to run the C++ preprocessor… /lib/cpp
configure: error: in /data/software/protobuf-2.5.0': configure: error: C++ preprocessor "/lib/cpp" fails sanity check Seeconfig.log’ for more details
错误信息:

configure: error: in `/data/software/protobuf-2.5.0’:
configure: error: C++ preprocessor “/lib/cpp” fails sanity check

问题的根源是缺少必要的C++库。如果是CentOS系统,运行,如下命令解决

yum install glibc-headers

yum install gcc-c++
结束后日志

…省略…

Installed:
gcc-c++.x86_64 0:4.8.5-39.el7

Dependency Installed:
libstdc+±devel.x86_64 0:4.8.5-39.el7

Dependency Updated:
libstdc++.x86_64 0:4.8.5-39.el7

Complete!
再次检查通过

[root@cluster2-slave2 protobuf-2.5.0]# ./configure
checking whether to enable maintainer-specific portions of Makefiles… yes
checking build system type… x86_64-unknown-linux-gnu
checking host system type… x86_64-unknown-linux-gnu
checking target system type… x86_64-unknown-linux-gnu
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /usr/bin/mkdir -p

。。。。。。。。省略。。。。。。。。

checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries… yes
checking dynamic linker characteristics… (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs… immediate
checking for python… /usr/bin/python
checking for the pthreads library -lpthreads… no
checking whether pthreads work without any flags… no
checking whether pthreads work with -Kthread… no
checking whether pthreads work with -kthread… no
checking for the pthreads library -llthread… no
checking whether pthreads work with -pthread… yes
checking for joinable pthread attribute… PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads… no
checking whether to check for GCC pthread/shared inconsistencies… yes
checking whether -pthread is sufficient with -shared… yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating scripts/gtest-config
config.status: creating build-aux/config.h
config.status: executing depfiles commands
config.status: executing libtool commands
[root@cluster2-slave2 protobuf-2.5.0]#
4.4 make
[root@cluster2-slave2 protobuf-2.5.0]# make
…省略…

libtool: link: ranlib .libs/libprotobuf-lite.a
libtool: link: ( cd “.libs” && rm -f “libprotobuf-lite.la” && ln -s “…/libprotobuf-lite.la” “libprotobuf-lite.la” )
make[3]: Leaving directory /data/software/protobuf-2.5.0/src' make[2]: Leaving directory/data/software/protobuf-2.5.0/src’
make[1]: Leaving directory `/data/software/protobuf-2.5.0’
4.5 make install
[root@cluster2-slave2 protobuf-2.5.0]# make install
…省略…

/usr/bin/mkdir -p ‘/usr/local/include/google/protobuf/io’
/usr/bin/install -c -m 644 google/protobuf/io/coded_stream.h google/protobuf/io/gzip_stream.h google/protobuf/io/printer.h google/protobuf/io/tokenizer.h google/protobuf/io/zero_copy_stream.h google/protobuf/io/zero_copy_stream_impl.h google/protobuf/io/zero_copy_stream_impl_lite.h ‘/usr/local/include/google/protobuf/io’
make[3]: Leaving directory /data/software/protobuf-2.5.0/src' make[2]: Leaving directory/data/software/protobuf-2.5.0/src’
make[1]: Leaving directory `/data/software/protobuf-2.5.0/src’
4.6 验证protobuf
[root@cluster2-slave2 protobuf-2.5.0]# protoc --version
libprotoc 2.5.0
可见安装成功

5 安装 Tez
5.1 下载
http://www.apache.org/dyn/closer.lua/tez/0.9.1/
在这里插入图片描述

下载源码自己根据自己的环境编译

5.2 上传解压
[root@cluster2-slave2 software]# tar -zxvf apache-tez-0.9.1-src.tar.gz -C …/module/

5.3 修改pom.xml
有四处修改:

(1)hadoop.version版本对应修改
确认自己的hadoop版本
在这里插入图片描述

修改如下
在这里插入图片描述

(2)repository.cloudera

在这里插入图片描述

(3) 新增pluginRepository.cloudera
在这里插入图片描述

(4) 注释不必要的东西减少下载和编译出错概率
在这里插入图片描述

完整pom.xml 如下

<?xml version="1.0" encoding="UTF-8"?>


4.0.0
org.apache.tez
tez
pom
0.9.1
tez

The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt Apache Software Foundation http://www.apache.org ${distMgmtStagingId} ${distMgmtStagingName} ${distMgmtStagingUrl} ${distMgmtSnapshotsId} ${distMgmtSnapshotsName} ${distMgmtSnapshotsUrl} ${distMgmtSnapshotsId} ${distMgmtSnapshotsName} ${distMgmtSnapshotsUrl} cloudera https://repository.cloudera.com/artifactory/cloudera-repos/ Cloudera Repositories false maven2-repository.atlassian Atlassian Maven Repository https://maven.atlassian.com/repository/public default ${distMgmtSnapshotsId} ${distMgmtSnapshotsName} ${distMgmtSnapshotsUrl} default cloudera Cloudera Repositories https://repository.cloudera.com/artifactory/cloudera-repos/ hadoop-shim tez-api tez-common tez-runtime-library tez-runtime-internals tez-mapreduce tez-examples tez-tests tez-dag tez-plugins tez-tools hadoop-shim-impls tez-dist docs 5.4 maven编译 注意:我们不需要javadoc和test所以可以编译时跳过

所以用下面领命编译

在pom.xml同级目录下执行

mvn clean package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
开始编译
在这里插入图片描述

5.5 遇到问题
第一次编译要下载很多包有可能中途下载失败
在这里插入图片描述

比如下面就是一次包的依赖没有下载成功报错了

重试后所有依赖的jar下载成功

但是编译还遇到了一个问题

报ApplicationReport.newInstance() 89行异常

/data/module/apache-tez-0.9.1-src/tez-mapreduce/src/main/java/org/apache/tez/mapreduce/clienttRunningJob.java:[89,29] no suitable method found for newInstance(org.apache.hadoop.yarn.api.records.ApplicationId,org.apache.hadoop.yarn.api.records.ApplicationAttemptId,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,,org.apache.hadoop.yarn.api.records.YarnApplicationState,java.lang.String,java.lang.String,int,int,org.apache.hadoop.yarn.api.records.FinalApplicationStatus,,java.lang.String,float,java.lang.String,)
在这里插入图片描述

解决办法:更换ApplicationReport.newInstance()的另一个方法

更换源代码:

return ApplicationReport.newInstance(unknownAppId, unknownAttemptId, “N/A”,
“N/A”, “N/A”, “N/A”, 0, null, YarnApplicationState.NEW, “N/A”, “N/A”,
0, 0, FinalApplicationStatus.UNDEFINED, null, “N/A”, 0.0f, “TEZ_MRR”, null)
更换为新代码:

return ApplicationReport.newInstance(unknownAppId, unknownAttemptId, “N/A”,
“N/A”, “N/A”, “N/A”, 0, null, YarnApplicationState.NEW, “N/A”, “N/A”,
0, 0, 0, FinalApplicationStatus.UNDEFINED, null, “N/A”, 0.0f, “TEZ_MRR”, null);
vim tez-mapreduce/src/main/java/org/apache/tez/mapreduce/clienttRunningJob.java

然后继续编译

mvn clean package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
5.6 最后编译成功
在这里插入图片描述

编译后的文件在tez-dist/target下面

我的在:/data/module/apache-tez-0.9.1-src/tez-dist/target

5.7 整个tez到hdfs
hdfs上创建相应的tez目录

[root@cluster2-slave2 target]# hadoop fs -mkdir /user/tez
上传tez-0.9.1.tar.gz到 /user/tez目录

[root@cluster2-slave2 target]# hadoop fs -put tez-0.9.1.tar.gz /user/tez

在这里插入图片描述

5.8 整个tez到hive
(1)进入CDH lib目录

cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib
(2) 创建tez相关目录目录

[root@cluster2-slave2 lib]# mkdir -p tez/conf
(3)创建 tez-site.xml文件

[root@cluster2-slave2 lib]# cd tez/conf/
[root@cluster2-slave2 conf]# vim tez-site.xml


tez.lib.uris
${fs.defaultFS}/user/tez/tez-0.9.1.tar.gz


tez.use.cluster.hadoop-libs
false


在这里插入图片描述

(4)tez-0.9.1-minimal拷贝到tez中

下面的目录

/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez

[root@cluster2-slave2 tez-0.9.1-minimal]# cp ./*.jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez
[root@cluster2-slave2 tez-0.9.1-minimal]# cp -r lib /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez

在这里插入图片描述

(5)分发tez这个文件到各个节点

[root@cluster2-slave2 lib]# scp -r tez root@cluster2-slave1:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib
[root@cluster2-slave2 lib]# scp -r tez root@cluster2-master:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib

6 配置hvie环境

6.1 配置环境
在cdh找到hive客户端配置
在这里插入图片描述

HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez/conf:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez/:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez/lib/
在这里插入图片描述

然后保存并部署客户端配置,使生效

6.2 测试效果
报错


    VERTICES      MODE        STATUS  TOTAL  COMPLETED  RUNNING  PENDING  FAILED  KILLED  

Map 1 container FAILED -1 0 0 -1 0 0
Reducer 2 container KILLED 1 0 0 1 0 0

VERTICES: 00/02 [>>--------------------------] 0% ELAPSED TIME: 0.15 s

20/08/07 13:01:23 INFO SessionState: Map 1: -/- Reducer 2: 0/1
Status: Failed
20/08/07 13:01:23 ERROR SessionState: Status: Failed
Vertex failed, vertexName=Map 1, vertexId=vertex_1596710469388_0001_1_00, diagnostics=[Vertex vertex_1596710469388_0001_1_00 [Map 1] killed/failed due to:INIT_FAILURE, Fail to create InputInitializerManager, org.apache.tez.dag.api.TezReflectionException: Unable to instantiate class with 1 arguments: org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator
at org.apache.tez.common.ReflectionUtils.getNewInstance(ReflectionUtils.java:71)
at org.apache.tez.common.ReflectionUtils.createClazzInstance(ReflectionUtils.java:89)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$1.run(RootInputInitializerManager.java:152)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$1.run(RootInputInitializerManager.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875)
at org.apache.tez.dag.app.dag.RootInputInitializerManager.createInitializer(RootInputInitializerManager.java:148)
at org.apache.tez.dag.app.dag.RootInputInitializerManager.runInputInitializers(RootInputInitializerManager.java:121)
at org.apache.tez.dag.app.dag.impl.VertexImpl.setupInputInitializerManager(VertexImpl.java:4101)
at org.apache.tez.dag.app.dag.impl.VertexImpl.access 3100 ( V e r t e x I m p l . j a v a : 205 ) a t o r g . a p a c h e . t e z . d a g . a p p . d a g . i m p l . V e r t e x I m p l 3100(VertexImpl.java:205) at org.apache.tez.dag.app.dag.impl.VertexImpl 3100(VertexImpl.java:205)atorg.apache.tez.dag.app.dag.impl.VertexImplInitTransition.handleInitEvent(VertexImpl.java:2912)
at org.apache.tez.dag.app.dag.impl.VertexImpl I n i t T r a n s i t i o n . t r a n s i t i o n ( V e r t e x I m p l . j a v a : 2859 ) a t o r g . a p a c h e . t e z . d a g . a p p . d a g . i m p l . V e r t e x I m p l InitTransition.transition(VertexImpl.java:2859) at org.apache.tez.dag.app.dag.impl.VertexImpl InitTransition.transition(VertexImpl.java:2859)atorg.apache.tez.dag.app.dag.impl.VertexImplInitTransition.transition(VertexImpl.java:2841)
at org.apache.hadoop.yarn.state.StateMachineFactory$MultipleInternalArc.doTransition(StateMachineFactory.java:385)
at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
at org.apache.hadoop.yarn.state.StateMachineFactory.access 500 ( S t a t e M a c h i n e F a c t o r y . j a v a : 46 ) a t o r g . a p a c h e . h a d o o p . y a r n . s t a t e . S t a t e M a c h i n e F a c t o r y 500(StateMachineFactory.java:46) at org.apache.hadoop.yarn.state.StateMachineFactory 500(StateMachineFactory.java:46)atorg.apache.hadoop.yarn.state.StateMachineFactoryInternalStateMachine.doTransition(StateMachineFactory.java:487)
at org.apache.tez.state.StateMachineTez.doTransition(StateMachineTez.java:59)
at org.apache.tez.dag.app.dag.impl.VertexImpl.handle(VertexImpl.java:1939)
at org.apache.tez.dag.app.dag.impl.VertexImpl.handle(VertexImpl.java:204)
at org.apache.tez.dag.app.DAGAppMaster V e r t e x E v e n t D i s p a t c h e r . h a n d l e ( D A G A p p M a s t e r . j a v a : 2317 ) a t o r g . a p a c h e . t e z . d a g . a p p . D A G A p p M a s t e r VertexEventDispatcher.handle(DAGAppMaster.java:2317) at org.apache.tez.dag.app.DAGAppMaster VertexEventDispatcher.handle(DAGAppMaster.java:2317)atorg.apache.tez.dag.app.DAGAppMasterVertexEventDispatcher.handle(DAGAppMaster.java:2303)
at org.apache.tez.common.AsyncDispatcher.dispatch(AsyncDispatcher.java:180)
at org.apache.tez.common.AsyncDispatcher 1. r u n ( A s y n c D i s p a t c h e r . j a v a : 115 ) a t j a v a . l a n g . T h r e a d . r u n ( T h r e a d . j a v a : 748 ) C a u s e d b y : j a v a . l a n g . r e f l e c t . I n v o c a t i o n T a r g e t E x c e p t i o n a t s u n . r e f l e c t . N a t i v e C o n s t r u c t o r A c c e s s o r I m p l . n e w I n s t a n c e 0 ( N a t i v e M e t h o d ) a t s u n . r e f l e c t . N a t i v e C o n s t r u c t o r A c c e s s o r I m p l . n e w I n s t a n c e ( N a t i v e C o n s t r u c t o r A c c e s s o r I m p l . j a v a : 62 ) a t s u n . r e f l e c t . D e l e g a t i n g C o n s t r u c t o r A c c e s s o r I m p l . n e w I n s t a n c e ( D e l e g a t i n g C o n s t r u c t o r A c c e s s o r I m p l . j a v a : 45 ) a t j a v a . l a n g . r e f l e c t . C o n s t r u c t o r . n e w I n s t a n c e ( C o n s t r u c t o r . j a v a : 423 ) a t o r g . a p a c h e . t e z . c o m m o n . R e f l e c t i o n U t i l s . g e t N e w I n s t a n c e ( R e f l e c t i o n U t i l s . j a v a : 68 ) . . . 25 m o r e C a u s e d b y : j a v a . l a n g . N o C l a s s D e f F o u n d E r r o r : c o m / e s o t e r i c s o f t w a r e / k r y o / S e r i a l i z e r a t o r g . a p a c h e . h a d o o p . h i v e . q l . e x e c . U t i l i t i e s . g e t B a s e W o r k ( U t i l i t i e s . j a v a : 404 ) a t o r g . a p a c h e . h a d o o p . h i v e . q l . e x e c . U t i l i t i e s . g e t M a p W o r k ( U t i l i t i e s . j a v a : 317 ) a t o r g . a p a c h e . h a d o o p . h i v e . q l . e x e c . t e z . H i v e S p l i t G e n e r a t o r . < i n i t > ( H i v e S p l i t G e n e r a t o r . j a v a : 131 ) . . . 30 m o r e C a u s e d b y : j a v a . l a n g . C l a s s N o t F o u n d E x c e p t i o n : c o m . e s o t e r i c s o f t w a r e . k r y o . S e r i a l i z e r a t j a v a . n e t . U R L C l a s s L o a d e r . f i n d C l a s s ( U R L C l a s s L o a d e r . j a v a : 381 ) a t j a v a . l a n g . C l a s s L o a d e r . l o a d C l a s s ( C l a s s L o a d e r . j a v a : 424 ) a t s u n . m i s c . L a u n c h e r 1.run(AsyncDispatcher.java:115) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.tez.common.ReflectionUtils.getNewInstance(ReflectionUtils.java:68) ... 25 more Caused by: java.lang.NoClassDefFoundError: com/esotericsoftware/kryo/Serializer at org.apache.hadoop.hive.ql.exec.Utilities.getBaseWork(Utilities.java:404) at org.apache.hadoop.hive.ql.exec.Utilities.getMapWork(Utilities.java:317) at org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.<init>(HiveSplitGenerator.java:131) ... 30 more Caused by: java.lang.ClassNotFoundException: com.esotericsoftware.kryo.Serializer at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher 1.run(AsyncDispatcher.java:115)atjava.lang.Thread.run(Thread.java:748)Causedby:java.lang.reflect.InvocationTargetExceptionatsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)atjava.lang.reflect.Constructor.newInstance(Constructor.java:423)atorg.apache.tez.common.ReflectionUtils.getNewInstance(ReflectionUtils.java:68)...25moreCausedby:java.lang.NoClassDefFoundError:com/esotericsoftware/kryo/Serializeratorg.apache.hadoop.hive.ql.exec.Utilities.getBaseWork(Utilities.java:404)atorg.apache.hadoop.hive.ql.exec.Utilities.getMapWork(Utilities.java:317)atorg.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.<init>(HiveSplitGenerator.java:131)...30moreCausedby:java.lang.ClassNotFoundException:com.esotericsoftware.kryo.Serializeratjava.net.URLClassLoader.findClass(URLClassLoader.java:381)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 33 more
]
6.3 异常处理
ClassNotFoundException: com.esotericsoftware.kryo.Serializer

解决办法 修改:

删除或者重命名hive/auxlib下的hive-exec-2.1.1-cdh6.3.2-core.jar和hive-exec-core.jar

所有节点我都做了

cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hive/auxlib
原本这样的
在这里插入图片描述

hive-exec-2.1.1-cdh6.3.2-core.jar -> …/…/…/jars/hive-exec-2.1.1-cdh6.3.2-core.jar
hive-exec-core.jar -> hive-exec-2.1.1-cdh6.3.2-core.jar
修改:重命名

mv hive-exec-2.1.1-cdh6.3.2-core.jar hive-exec-2.1.1-cdh6.3.2-core.jar.bck
mv hive-exec-core.jar hive-exec-core.jar.bck
然后重启hive使生效

继续测试

注意必须有set hive.tez.container.size=3020;否则报错

hive> set hive.tez.container.size=3020;
hive> set hive.execution.engine=tez;
执行查询

hive> select sum(salemoney) from crm_sal_shop_sale;
打印出
在这里插入图片描述

6.4 日志太多的处理
实际上可以看出这个过程日志太多了。看着不清爽,下面的操作减少日志输出量

这是因为/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez/lib目录下有

slf4j-api-1.7.10.jar
slf4j-log4j12-1.7.10.jar
两个包

并且现在hive日志级别是 INFO
在这里插入图片描述

那么现在通过CDH控制台把hive日志级别设置成ERROR

在这里插入图片描述

重启hive使生效
在这里插入图片描述

结果查看配置
在这里插入图片描述

查看hive查询日志
在这里插入图片描述

可见清爽多了

也可以直接删除下面这两个包

slf4j-api-1.7.10.jar
slf4j-log4j12-1.7.10.jar

这个时候yarn上也显示 ApplicationType 是 Tez
在这里插入图片描述

6.5 hiveserver2也配置能启用tez

在这里插入图片描述

set hive.tez.container.size=3020;
set hive.execution.engine=tez;

select brandid,vipid,sku_id,time from pro30049.add_to_cart_dt_partition where vipid=1197032 and time>=1588953500000 and time<=1589039999000;
在这里插入图片描述

6.6 替换hive默认计算引擎
从上面可以看出,使用tez的时候需要临时设置

set hive.tez.container.size=3020;
set hive.execution.engine=tez;

这里我遇到的一个问题本应该

上面配置
在这里插入图片描述

如上图修改的时候就可以把配置分发到hive-site.xml 但是我的没有分发

测试下来还是需要添加临时设置

set hive.tez.container.size=3020;
set hive.execution.engine=tez;

后面尝试直接在一个节点cluster2-slave2去修改hive-site.xml文件
在这里插入图片描述

重启hive服务

然后测试

在这里插入图片描述

不用设置临时启用tez引擎了


http://chatgpt.dhexx.cn/article/NKIIFgWY.shtml

相关文章

CDH6.3.2搭建HIVE ON TEZ步骤

|引言 参考&#xff1a;CDH6.3.2 hive on tez搭建过程_我不是橙子的博客-CSDN博客 CDH6.3.2版本搭建Tez执行引擎过程 - 虎啸千峰 - 博客园 hive on tez集成完整采坑指南(含tez-ui及安全环境)_匆匆z2的博客-CSDN博客_hive on tez 下载过程中若是感觉慢的话可以参考这个操作步…

tez-ui docker镜像打包配置并部署K8S

一、下载tez ui安装包并修改配置文件 1.1 选择版本下载&#xff0c; tez-ui下载官方地址 mkdir tez-ui && cd tez-ui wget https://repository.apache.org/content/repositories/releases/org/apache/tez/tez-ui/0.9.1/tez-ui-0.9.1.war1.2 解压war包&#xff0c;修改…

Apache Tez 了解

转发自这位大佬博客&#xff1a;https://www.cnblogs.com/rongfengliang/p/6991020.html 你可能听说过Apache Tez&#xff0c;它是一个针对Hadoop数据处理应用程序的新分布式执行框架。但是它到底是什么呢&#xff1f;它的工作原理是什么&#xff1f;哪些人应该使用它&#xf…

Tez - 安装

一、Tez 安装 1 下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/tez/0.9.0/ 2 二进制包安装 2.1 解压并重命名 [roothadoop01 ~]# tar -zxvf /home/apache-tez-0.9.0-bin.tar.gz -C /usr/local/ [roothadoop01 ~]# mv /usr/local/apache-tez-0.9.0-bin/ /usr/local/t…

tez详解

1 tez的概览 1.1 tez介绍 1.1.1 介绍 tez是一个apache的开源项目&#xff0c;意在构建一个应用框架&#xff0c;能通过复杂任务的DAG来处理数据。它是基于当前的hadoop yarn之上&#xff0c;换句话就是yarn为其提供资源。 tez主要的两个设计目标: 增强终端用户使用: 灵活…

TEZ深入理解

简介 Tez是Apache开源的支持DAG作业的计算框架&#xff0c;是支持HADOOP2.x的重要引擎。它源于MapReduce框架&#xff0c;核心思想是将Map和Reduce两个操作进一步拆分&#xff0c;分解后的元操作可以任意灵活组合&#xff0c;产生新的操作&#xff0c;这些操作经过一些控制程序…

Tez 简介

目录 一、Tez简介 二、Tez UI界面 三、Tez 日志 一、Tez简介 1.1 Tez 是支持 DAG 作业的开源计算框架&#xff0c;它可以将多个有依赖的作业转换为一个作业从而大幅提升 DAG 作业的性能。 从本质上讲&#xff0c;Tez 组成非常简单&#xff1a; 数据处理管道引擎&#xff…

TEZ介绍及使用

TEZ介绍及使用 TEZ是什么&#xff1f; Tez是支持DAG作业的开源计算框架&#xff0c;它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG 作业的性能。 Tez源于MapReduce框架&#xff0c;核心思想是将Map和Reduce两个操作进一步拆分&#xff0c;即Map被拆分成Input、Proc…

BACnet安全连接(BACnet/SC) 介绍

BACnet安全连接(BACnet/SC)是ASHRAE BACnet委员会最近发布的BACnet协议的增编。是在增编135-2016bj中介绍的。它基于一个安全的、加密的数据链路层。 专门设计以满足不同IP基础结构。对BACnet通信使用标准化的、通常已经存在的IP网络基础设施的需求正在增加&#xff0c;BACnet/…

BACnet学习笔记

BACnet是一种用于自动化建筑和控制网络的数据通信协议。(Building Automation and Control Networks) 自控网络通信协议基本体系: CAN -- 只定义了通信标准 BACnet BAC Model and Message Network Layer LANs The protocol can be viewed as a matrix of layers. Propertie…

BACnet协议简要说明及组网简介

主题概要BACnet协议BACnet协议简要说明&#xff0c;组网简介编辑时间新建20160217序号参考资料1BACnet协议正文1995版2http://www.bacnet.org/Tutorial/BACnetIP/ 1 协议说明 BACnet协议(A Data Communication Protocol for Building Automation and Control Networks)&#…

BACnet协议详解——应用层说明一

文章目录 写在前面1. 应用层模型1.1 需确认的应用层服务1.2 无需确认的应用层服务2 BACnet报文的分段2.1 报文分段规则2.1.1 APDU数据流的分段规则2.1.2 APDU最大长度的确定2.1.3 可接受的最大分段数2.2 分段协议控制信息(PCI)写在前面 年关将至,事情有点多,耽误了原本定好…

BACnet协议读取与发送

BACnet协议读取与发送 注意我的提问&#xff1a;更新开发环境BACnet相关基础知识BACnet格式BACnet代码BACnet设备查找BACnet设备读取BACnet写入操作AND其他...**BACpypes库中没有提供非标准数据类型接口&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;** 结束 因…

Bacnet协议报文格式详解(一)

系统实现基于BACnet/IP&#xff08;又称B/IP&#xff09;网络进行通讯。BACnet虚拟链路层&#xff08;BVLL&#xff09;提供了BACnet网络层和某指定的通讯子系统的接口&#xff0c;本文指定了BACnet虚拟链路控制&#xff08;BVLC&#xff09;要求支持的定向和广播信息。本实现关…

bacnet (收集)

嵌入式系统中BACnet-MS/TP协议栈的实现 一个BACnet设备由一个网络号码和一个MAC地址唯一确定 bacnet MS/TP 走的是485网络 https://www.eefocus.com/mcu-dsp/226727 1 引言 20世纪90年代&#xff0c;Internet经历了爆炸性发展&#xff0c;成为垄断全球的计算机网络。以Cisc…

BACnet

BACnet通讯协议(一) BACnet协议(A Data Communication Protocol for Building Automation and Control Networks)&#xff0c;是由美国采暖、制冷和空调工程师协会&#xff08;ASHRAE&#xff09;制定的一个楼宇自动控制技术标准文件&#xff0c;BACnet协议最根本的目的是提供…

BACnet协议

BACnet协议 BACnet协议层包括物理层&#xff0c;链路层&#xff0c;网络层&#xff0c;应用层和BACnet安全层。 我们知道BACnet是用于楼宇自动化和控制网络的简短形式的数据通信协议。BACnet是主要行业供应商产品中常用的自动化和控制协议之一&#xff0c;如江森自控&#xff…

BACnet协议详解——初识BACnet架构

文章目录 BACnet协议架构BACnet简化的架构简化的四层BACnet体系结构选取BACnet 网络的拓扑结构安全最后声明BACnet协议架构 国际标准化组织在制定计算机网络通讯协议标准时定义了一个模型,称为开放系统互联参考模型(OSI(ISO 7498)。模型的目的是解决计算机与计算机之间普遍…

BACnet基础入门

BACnet入门&#xff1a;一、简单了解 前言协议栈层级与拓扑结构1.层级体系2.拓扑结构 协议栈的相关内容1.应用层a.设备b.对象c.属性e.服务f.扩展g.安全h.互操作基本模块(BIBBs)i.一致性声明&#xff08;PICS&#xff09;j.其他 2.网络层3.数据链路与物理层 工具源码参考 前言 …

BACnet协议介绍

BACnet为BuildingAutomation andControlnetworks的简称&#xff0c;台湾通常翻译为“建筑自动化控制网路通讯协定”&#xff0c;而中国大陆则译为“楼宇自动化与控制网络”。 前言 BACnet是用于智能建筑的通信协议&#xff0c;是国际标准化组织&#xff08;ISO&#xff09;、美…