1.版本选择
首先选择tez版本,根据Hive-Tez兼容信息确定合适的版本,详细见以下wiki地址:
https://cwiki.apache.org/confluence/display/Hive/Hive-Tez+Compatibility
由于生产环境使用的是hive-1.1.0,所以选择tez官网0.7.1版本来安装;
2.编译
首先从官网http://www.apache.org下载apache-tez-0.7.1-src.tar.gz源码包,通过hadoop客户端执行命令
hadoop version确定hadoop版本号,如:版本是Hadoop 2.7.1,解压tez源码包后,在顶层构建文件pom.xml中修改hadoop的版本号如下:
安装编译依赖
protobuffer 2.5.0、Nodejs(tez-ui需要)、Npm、git依赖,这里不做讲解;
执行编译:
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true
大概十来分钟编译完
3.客户端安装
这里客户端安装只是让hive可选择tez作为执行引擎,并不彻底将mr也用tez来跑
取出apache-tez-0.7.1.src/tez-dist/target目录下的tez-0.7.1.tar.gz包上传到hdfs某个目录下,如/apps/tez/tez-0.7.1.tar.gz
1).客户端创建配置文件tez-site.xml,比如放到目录/data1/app/conf下:
tez.lib.uris加入该配置项指向hdfs中tez的tar包
<property>
<name>tez.lib.uris</name>
<value>${fs.defaultFS}/apps/tez/tez-0.7.1.tar.gz</value>
</property>
2).解压tez-dist/target下的minimal.tar.gz 到客户端的一个目录,比如:/data1/app/tez-0.7.1
3).修改环境变量/etc/profile:
export TEZ_CONF_DIR=/data1/app/conf
export TEZ_JARS=/data1/app/tez-0.7.1
export HADOOP_CLASSPATH=${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*
生效:
Source /etc/profile
4.执行
在hive客户端或者session级别设置以下执行引擎和队列:
set hive.execution.engine=tez;
set tez.queue.name =root.tmp;
即可使用tez作为引擎跑hive sql语句
效果如下: