HIVE-TEZ引擎配置安装

基础环境准备

由于该文章主要关注TEZ引擎的安装,相关组件均只说明版本信息,配置TEZ过程中的部分组件还是会解释清楚的哈

组件版本下边有没?备注
JDK1.8.0_322基础环境,无需多言
MAVEN3.8.6编译TEZ等使用
GIT2.33.0编译TEZ等使用
HADOOP3.1.0HIVE安装的基础,无需多言
HIVE3.1.2弄TEZ干啥,还不是为了他
PROTOBUF2.5.0protobuf-2.5.0下载
LZO2.10LZO-2.10下载&LZO-源码下载
TEZ0.10.1TEZ-源码下载

参考安装流程

还是一样!感谢各位大神在互联网上的种种分享!

  1. 官方文档
  2. 非常详细有用的安装过程-1!
  3. 非常详细有用的安装过程-2!

1. TEZ环境准备

注:本想重新再装一次,后来发现时间不够了,就用了昨天安装好的,所以例图色调不太一样,另外,我把大致的路径都放出来了,之前看到的一些文章路径描述不清,导致安装软件过程中总是在想我是谁!?!我在哪?!?我在做什么?!?

1. 编译工具

为避免在安装过程中因为编译工具报错,如在编译安装protobuf时下二图,我们预先安装一些编译工具

### 安装编译工具

yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++

错误1
错误2

2. HADOOP

在这里插入图片描述

根据官网所属,我们如果安装TEZ版本0.8.3和更高版本,TEZ需要使用的Apache Hadoop版本为2.6.0或更高版本。对于Tez版本0.9.0和更高版本,Tez需要的Apache Hadoop版本为2.7.0或更高版本。
我这里使用的是HADOOP3.1.0,可以根据上述查看自己的版本是否匹配哈

3. PROTOBUF

ProtoBuf(protocol buffers)是一种灵活、高效、自动化机制、语言无关、平台无关、可扩展的序列化结构数据的方法-可类比 XML,但是比 XML 更小、更快、更为简单。可用于(数据)通信协议、数据存储等。
在TEZ编译过程中如果使用的不是2.5.0版本的protobuf则会报错停止MVN编译,为了避免在本就冗长的MVN编译过程中停止重来,预先安装哈
链接:
protobuf-2.5.0下载路径

安装流程
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

tar -zxvf protobuf-2.5.0.tar.gz

cd protobuf-2.5.0

ll
# 目录结构如下
# -rw-r--r--  1 109965 5000  36976 Feb 27  2013 aclocal.m4
# -rwxr-xr--  1 109965 5000   1519 Feb 27  2013 autogen.sh
# -rw-r--r--  1 109965 5000  25312 Feb 27  2013 CHANGES.txt
# -rwxr-xr--  1 109965 5000  44826 Feb 27  2013 config.guess
# -rw-r--r--  1 109965 5000   3709 Feb 27  2013 config.h.in
# -rwxr-xr--  1 109965 5000  35454 Feb 27  2013 config.sub
# -rwxr-xr--  1 109965 5000 599150 Feb 27  2013 configure
# -rw-r--r--  1 109965 5000   4829 Feb 27  2013 configure.ac
# -rw-r--r--  1 109965 5000   3527 Feb 27  2013 CONTRIBUTORS.txt
# -rw-r--r--  1 109965 5000   1732 Feb 27  2013 COPYING.txt
# -rwxr-xr--  1 109965 5000  20334 Feb 27  2013 depcomp
# drwxr-xr-x  2 109965 5000   4096 Feb 27  2013 editors
# drwxr-xr-x  2 109965 5000   4096 Feb 27  2013 examples
# -rwxr-xr--  1 109965 5000   1105 Feb 27  2013 generate_descriptor_proto.sh
# drwxr-xr-x 15 109965 5000   4096 Feb 27  2013 gtest
# -rwxr-xr--  1 109965 5000  13998 Feb 27  2013 install-sh
# -rw-r--r--  1 109965 5000   9537 Feb 27  2013 INSTALL.txt
# drwxr-xr-x  3 109965 5000   4096 Feb 27  2013 java
# -rw-r--r--  1 109965 5000 283680 Feb 27  2013 ltmain.sh
# drwxr-xr-x  2 109965 5000   4096 Feb 27  2013 m4
# -rw-r--r--  1 109965 5000  15189 Feb 27  2013 Makefile.am
# -rw-r--r--  1 109965 5000  41742 Feb 27  2013 Makefile.in
# -rwxr-xr--  1 109965 5000  10346 Feb 27  2013 missing
# -rw-r--r--  1 109965 5000    408 Feb 27  2013 protobuf-lite.pc.in
# -rw-r--r--  1 109965 5000    429 Feb 27  2013 protobuf.pc.in
# drwxr-xr-x  3 109965 5000   4096 Feb 27  2013 python
# -rw-r--r--  1 109965 5000   5312 Feb 27  2013 README.txt
# drwxr-xr-x  4 109965 5000   4096 Feb 27  2013 src
# drwxr-xr-x  2 109965 5000   4096 Feb 27  2013 vsprojects

./autogen.sh
# 结果如下图一

./configure

make install

protoc --version
#libprotoc 2.5.0

图一 autogen结果

4. LZO

由于在LZO的安装包中依赖HADOOP的对应版本,故直接下载LZO编译好的安装包可能会有不适配的问题导致报错,所以下载LZO源码包我们自己编译
链接:
LZO-2.10下载路径
LZO-源码下载路径

安装流程
#LZO插件部分

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz

tar -zxvf lzo-2.10.tar.gz

cd lzo-2.10/

./configure -prefix=/usr/local/lzo/

make

make install

#LZO源码部分(我没wget下来,sftp传到服务器上的)

unzip hadoop-lzo-master.zip

cd hadoop-lzo-master

vim pom.xml
#变更hadoop.current.version为自己的HADOOP版本号

#创建临时环境变量
export C_INCLUDE_PATH=/usr/local/lzo/include
export LIBRARY_PATH=/usr/local/lzo/lib

mvn package -Dmaven.test.skip=true

cd target

#将target中打好包的snapshot放在hadoop的对应位置下
cp /opt/software/install_packages/hadoop-lzo-master/target/hadoop-lzo-0.4.21-SNAPSHOT.jar /opt/software/hadoop3.1.0/share/hadoop/common/

在这里插入图片描述

5. TEZ

TEZ相关项目如上所述,最好针对不同版本的HADOOP重新进行编译,避免TEZ配置后HADOOP或HIVE无法正常启动等问题
链接:
TEZ-源码下载路径

安装流程
wget https://mirrors.bfsu.edu.cn/apache/tez/0.10.1/apache-tez-0.10.1-src.tar.gz

tar -zxvf apache-tez-0.10.1-src.tar.gz

cd apache-tez-0.10.1-src/

vim pom.xml
#变更hadoop.current.version为自己的HADOOP版本号
#可以选择在编译的module中把tez-ui去掉,我这个模块编译失败了。。。

#正式开始编译
#接下来就是极长时间的编译过程
#过程中如有问题可以遇问题杀问题,我在这一整套下来编译时就没啥问题了
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true

#编译完成!
cd tez-dist/

cd target/

#需要用到这个路径上传和放置文件
pwd
#/opt/software/install_packages/apache-tez-0.10.1-src/tez-dist/target/tez-0.10.1-minimal.tar.gz

cp /opt/software/install_packages/apache-tez-0.10.1-src/tez-dist/target/tez-0.10.1-minimal.tar.gz /opt/software/tez0.10.1

tar -zxvf tez-0.10.1-minimal.tar.gz

hadoop fs -mkdir /tez

hadoop fs -put /opt/software/install_packages/apache-tez-0.10.1-src/tez-dist/target/tez-0.10.1.tar.gz /tez

#基本准备的差不多了,接下来就是各种环境配置了

在这里插入图片描述
在这里插入图片描述

2. TEZ配置

1. HADOOP

tez-site.xml

在HADOOP安装目录下的$HADOOP_HOME/etc/hadoop/中新建tez-site.xml文件,如果是集群,记得同步

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- The location of the Tez libraries which will be localized for DAGs -->
    <!-- 就是之前上传到HDFS的TEZ函数库 -->
    <property>
        <name>tez.lib.uris</name>
        <value>${fs.defaultFS}/tez/tez-0.10.1.tar.gz</value>
    </property>
    <!-- Tez容器内最大Java堆内存占比(0~1或-1),设细d防止爆内存 -->
    <property>
        <name>tez.container.max.java.heap.fraction</name>
        <value>0.5</value>
    </property>
    <property>
         <name>tez.use.cluster.hadoop-libs</name>
         <value>true</value>
    </property>
    <property>
         <name>tez.history.logging.service.class</name>
         <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
    </property>
    <property>
         <name>tez.am.resource.memory.mb</name>
         <value>1024</value>
    </property>
    <property>
         <name>tez.am.resource.cpu.vcores</name>
         <value>1</value>
    </property>
    <property>
         <name>tez.task.resource.memory.mb</name>
         <value>1024</value>
    </property>
    <property>
         <name>tez.task.resource.cpu.vcores</name>
         <value>1</value>
    </property>
</configuration>
tez.sh

在$HADOOP_HOME/etc/hadoop/shellprofile.d中存在配置文件example.sh,可以直接使用该配置文件,也可以重新创建tez.sh的配置文件

<!-- 省略上述原始内容 -->
hadoop_add_profile tez
function _tez_hadoop_classpath
{
    hadoop_add_classpath "$HADOOP_HOME/etc/hadoop" after
    hadoop_add_classpath "/opt/software/tez0.10.1/*" after
    hadoop_add_classpath "/opt/software/tez0.10.1/lib/*" after
}

2. HIVE

hive-site.xml
<!-- 省略上述原始内容 -->
        <property>
                <name>hive.execution.engine</name>
                <value>tez</value>
        </property>
hive-env.sh
<!-- 省略上述原始内容 -->
export TEZ_HOME=/opt/software/tez0.10.1    #是你的tez的解压目录
export TEZ_JARS=""
#读取到tez下的jar包
for jar in `ls $TEZ_HOME |grep jar`; do
    export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
    export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/lib/$jar
done
# 配置支持lzo压缩
#export HIVE_AUX_JARS_PATH=/opt/module/hadoop/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS
export HIVE_AUX_JARS_PATH=/opt/software/hadoop3.1.0/share/hadoop/common/hadoop-lzo-0.4.21-SNAPSHOT.jar$TEZ_JARS
日志JAR包冲突
mv /opt/software/tez0.10.1/lib/slf4j-log4j12-1.7.30.jar /opt/software/tez0.10.1/lib/slf4j-log4j12-1.7.30.jar.back

END!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无语梦醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值