将xyz替换为您正在使用的tez发行版号。例如0.5.0。对于Tez版本0.8.3和更高版本,Tez需要Apache Hadoop版本为2.6.0或更高版本。对于Tez版本0.9.0及更高版本,Tez需要Apache Hadoop版本为2.7.0或更高版本。
1.Hadoop 2.7.0+(我的是2.7.1)
2.Tez还需要Protocol Buffers 2.5.0,包括protoc编译器。(如果你下载的是apache-tez-0.9.0-src.tar.gz包则需要编译,需要Protocol Buffers 2.5.0)
3.Maven3+
4.Hive 2.1.1
5.tez-0.9.0
(注:如果下载的是apache-tez-0.9.0-bin.tar.gz则不需要编译。可以跳过这一步,建议下载bin)
1.下载源码
2.解压
tar -zxvf protobuf-2.5.0.tar.gz
3.编译安装
cd protobuf-2.5.0
./configure
make
make install
protoc --version #验证是否安装成功
1.下载地址
这里可以选择
apache-tez-0.9.0-src.tar.gz
apache-tez-0.9.0-bin.tar.gz(建议下载这个,感觉src编译遇到好多问题。)
2.编译
a.方式一
我们先来说apache-tez-0.9.0-src.tar.gz
tar -zxvf apache-tez-0.9.0-src.tar.gz
#编译不能用root用户。
chmod -R 777 apache-tez-0.9.0-src
cd apache-tez-0.9.0-src
su elk
mvn -X clean package -DskipTests=true -Dmaven.javadoc.skip=true
b.方式二
apache-tez-0.9.0-bin.tar.gz(不需要编译)
tar -zxvf apache-tez-0.9.0-bin.tar.gz
cd apache-tez-0.9.0-bin
3.将tez的压缩包put到hdfs上去
a.方式一
所在文件目录
apache-tez-0.9.0-src/target
b.方式二
所在文件目录
apache-tez-0.9.0-bin/share
(注:后面的步骤就一样了)
hadoop fs -mkdir -p /user/tez
hadoop fs -put tez.tar.gz /user/tez
4.在hadoop/etc/hadoop下创建tez-site.xml文件并写上如下配置
vi tez-site.xml
<configuration>
<property>
<name>tez.lib.urisname>
<value>${fs.defaultFS}/user/tez/tez.tar.gzvalue>
property>
<property>
<name>tez.container.max.java.heap.fractionname>
<value>0.2value>
property>
configuration>
保存后将文件复制到别的节点
5.修改hadoop-env.sh追加下列几行
TEZ_CONF_DIR=/usr/local/hadoop/etc/hadoop/tez-site.xml
TEZ_JARS=/usr/local/tez/apache-tez-0.9.0-bin
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*
保存后将hadoop-env.sh分发到集群的各个节点。
6.重启hadoop
7.启动hive
set hive.execution.engine=tez;
如果想要恢复使用mapreduce
set hive.execution.engine=mr;
(从时间讲,速度似乎是快了三倍。yummm~~~)
8.在配置文件中设置执行引擎为tez
如果不想每次进入hive都
set hive.execution.engine=tez;
可以在hive的conf目录下修改hive-site.xml
vi hive-site.xml
需要先安装Tomcat
1.找到war包
因为我安装的是bin所以在安装包中就有tez-ui-0.9.0.war
自己编译的话也有生成,在这里不做过多赘述。
2.将tez-ui部署在tomcat
#在webapps下创建tez-ui目录
mkdir /usr/local/apache/apache-tomcat-8.5.31/webapps/tez-ui
#进入文件
cd /usr/local/apache/apache-tomcat-8.5.31/webapps/tez-ui
#解压war包
unzip tez-ui-0.9.0.war
#编辑配置文件
vim config/configs.env
3.配置timelineserver
目录:/usr/local/hadoop/etc/hadoop
vim yarn-site.xml添加以下内容.然后分发到各个节点。
<property>
<name>yarn.timeline-service.enabledname>
<value>truevalue>
property>
<property>
<name>yarn.timeline-service.hostnamename>
<value>tmastervalue>
property>
<property>
<name>yarn.timeline-service.http-cross-origin.enabledname>
<value>truevalue>
property>
<property>
<name> yarn.resourcemanager.system-metrics-publisher.enabledname>
<value>truevalue>
property>
<property>
<name>yarn.timeline-service.generic-application-history.enabledname>
<value>truevalue>
property>
<property>
<description>Address for the Timeline server to start the RPC server.description>
<name>yarn.timeline-service.addressname>
<value>tmaster:10201value>
property>
<property>
<description>The http address of the Timeline service web application.description>
<name>yarn.timeline-service.webapp.addressname>
<value>tmaster:8188value>
property>
<property>
<description>The https address of the Timeline service web application.description>
<name>yarn.timeline-service.webapp.https.addressname>
<value>tmaster:2191value>
property>
<property>
<name>yarn.timeline-service.handler-thread-countname>
<value>24value>
property>
vim tez-site.xml添加下列几行,分发到各个节点。
<property>
<name>tez.history.logging.service.classname>
<value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingServicevalue>
property>
<property>
<name>tez.tez-ui.history-url.basename>
<value>http://192.168.205.70:8880/tez-ui/value>
property>
4.启动hadoop
5.启动timelineserver
yarn-daemon.sh start timelineserver
6.启动tomcat
/usr/local/apache/apache-tomcat-8.5.31/bin/startup.sh
访问界面
http://192.168.205.70:8880/tez-ui/
参考资料:
1.Tez网站
2.Tez设计文档
3.The Stinger Initiative: Making Apache Hive 100 Times Faster
4.hive on tez