CDH6.3.2 hive on tez搭建过程

1 篇文章 0 订阅

CDH6.3.2 hive on tez搭建过程

该文章借鉴了相关博客的搭建过程,仅用作与日后自己查阅方便,如若侵犯其他博主的权益,请与作者联系,谢谢!

环境准备:

1.安装jdk

安装的jdk版本为jdk1.8

mkdir -r /opt/jdk1.8
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /opt/jdk1.8

配置环境变量
vim /etc/profile
在最后添加如下内容:
export JAVA_HOME=/opt/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin:
保存并退出

使环境变量生效
source /etc/profile

验证
java -version

2.安装maven

安装的maven版本为maven3.6.3

mkdir /opt/maven3.6.3
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt/maven3.6.3

配置环境变量
vim /etc/profile
在最后添加如下内容:
export MVN_HOME=/opt/maven3.6.3
export PATH=$PATH:$JAVA_HOME/bin:$MAV_HOME/bin:
保存并退出

使环境变量生效
source /etc/profile

验证
mvn -version

3.安装protobuf

安装的protobuf版本为protobuf-2.5.0

protobuf下载地址:

mkdir -r /opt/protof-2.5.0
tar -zxvf protobuf-2.5.0.tar.gz -C /opt/protof-2.5.0

配置环境变量
vim /etc/profile
在最后添加如下内容:
export POF_HOME=/opt/protof-2.5.0
export PATH=$PATH:$JAVA_HOME/bin:$MAV_HOME/bin:$POF_HOME/bin:
保存并退出

使环境变量生效
source /etc/profile

编译
cd /opt/protobuf-2.5.0
./configure
make
make install
注:如果在编译的过程中报错缺少c或者c++,使用yum方式安装后重试即可

验证 
protoc --version
注:当configure校验不通过的时候,缺少哪些包就安装,一般需要安装gcc

4.安装tez

安装的tez版本为tez0.9.1

tez-0.9.1下载地址:

mkdir /opt/tez-0.9.1
tar -zxvf apache-tez-0.9.1-src.tar.gz -C /opt/tez-0.9.1

解压完成后进行如下操作:
cd /opt/tez-0.9.1

修改整个项目的pom.xml文件
第一处:
<hadoop.version>3.0.0-cdh6.3.2</hadoop.version>
第二处:
<repository>
  <id>cloudera</id>
  <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
  <name>Cloudera Repositories</name>
  <snapshots>
    <enabled>false</enabled>
  </snapshots>
</repository>
第三处:
<pluginRepository>
  <id>cloudera</id>
  <name>Cloudera Repositories</name>
  <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</pluginRepository>
第四处:
<dependency>
  <groupId>com.sun.jersey</groupId>
  <artifactId>jersey-client</artifactId>
  <version>1.19</version>
</dependency>
第五处:
<!--<module>tez-ext-service-tests</module>
<module>tez-ui</module>-->
注:将这两个注释掉,如果有需要可以不用注释

修改mapreduce的java文件
vim tez-mapreduce/src/main/java/org/apache/tez/mapreduce/client/NotRunningJob.java
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);
注:可以先进行编译,如果报这个错再进行修改这一步也行

修改完成后进行maven编译
mvn clean package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true
注:这样会跳过test编译,很快就编译完成

经过一段时间等待,所有输出选项均为SUCCESS则表示为编译通过

编译完成的软件位置
/opt/tez-0.9.1/tez-dist/target/

整个tez的编译过程即可完成

TEZ搭建

1.整合到hdfs

hdfs dfs -mkdir /tez
hdfs dfs -put /opt/tez-0.9.1/tez-dist/target/tez-0.9.1.tar.gz /tez

2.整合hive

注:以下操作均需要在所有节点执行

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

mkdir ./tez
cd ./tez
vim ./tez-site.xml
<configuration>
    <property>
        <name>tez.lib.uris</name>
        <value>${fs.defaultFS}/tez/tez-0.9.1.tar.gz</value>
    </property>
    <property>
          <name>tez.use.cluster.hadoop-libs</name>
          <value>false</value>
    </property>
</configuration>

拷贝jar包
将tez-0.9.1-minimal文件夹下的jar及lib下的jar拷贝到tez中
cd /opt/tez-0.9.1/tez-dist/target/tez-0.9.1-minimal
cp ./*.jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez/
cp ./lib /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/tez/

避免kryo的错误
cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hive/auxlib
mv hive-exec-2.1.1-cdh6.3.2-core.jar hive-exec-2.1.1-cdh6.3.2-core.jar.bak
mv hive-exec-core.jar hive-exec-core.jar.bak

配置hive的env配置文件
cd /etc/hive/conf
vim hive-env.sh
在最后添加
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/*

cd /etc/hadoop/conf
vim hadoop-env.sh
在最后添加
export TEZ_HOME=/opt/tez

for jar in `ls $TEZ_HOME | grep jar`; do
	export HADOOP_CALSSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
	export HADOOP_CALSSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar
done

完成后,重新部署hive客户端并重启相关组件

3.hive更换默认引擎为tez

登录到cm的hive的配置文件管理界面

修改hive的Getaway
在hive-env.sh的Gateway客户端环境高级安全代码段中添加
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/*

搜索hive-site.xml
在hive-site.xml的hive客户端高级配置代码段中添加
<name>tez.lib.uris</name>
<value>/opt/tez-0.9.1.tar.gz</value>
<name>hive.execution.engine</name>
<value>tez</value>
<name>hive.tez.container.size</name>
<value>1024</value>
在hive-site.xml的Hiveserver2高级配置代码段中添加
<name>hive.execution.engine</name>
<value>tez</value>
<name>hive.tez.container.size</name>
<value>1024</value>


配置完成后重新部署客户端以及重启相关组件
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值