Tez-0.4.1编译和安装

来源:互联网 发布:js formdata 取属性值 编辑:程序博客网 时间:2024/06/05 13:28

一、Tez编译

    1.下载tez-0.4.1-incubating-src.tar.gz,网址:http://tez.apache.org/ ,本次编译和安装的版本是tez-0.4.1,Hadoop版本是2.2.0

    2.编译Tez,解压tez-0.4.1-incubating-src.tar.gz,进入解压后的目录tez-0.4.1-incubating-src,该版本的默认的Hadoop版本是2.2.0,protobuf版本是2.5.0,如需要匹配其他版本的Hadoop需要修改相应版本,具体在tez-0.4.1-incubating-src目录总pom.xml文件中修改。编译Tez时需要protobuf环境和Maven环境,可以在之前编译过Hadoop-2.2.0的机器上进行编译,这样不用再安装一些包依赖的问题。在tez-0.4.1-incubating-src目录中运行mvn clean install -DskipTests=true -Dmaven.javadoc.skip=true该命令不会生成.tar.gz包,mvn clean package -Dtar -DskipTests=true -Dmaven.javadoc.skip=true 命令则生成tez-0.4.1-incubating.tar.gz文件,本次编译以后一种方式编译,编译好的文件在tez-0.4.1-incubating-src/tez-dist/target目录中。关于编译详细信息可以参考tez的官方文档说明,网址:http://tez.apache.org/install.html

二、Yarn上安装Tez安装

1. 因为Tez是运行在Yarn上的,所以在安装的机器上需要Hadoop-2.x版本环境。复制tez-0.4.1-incubating-src/tez-dist/target/tez-0.4.1-incubating.tar.gz文件到/usr/apache/目录(该目录可以更改)中,解压tez-0.4.1-incubating.tar.gz文件得到tez-0.4.1-incubating目录,该目录包含了tez的核心jar和第三方jar包。

    备注:只需要在一台机器上安装Tez即可,提交Tez job也只能在该机器上提交。

2. 上传Tez相关jar到HDFS上,在HDFS创建相应的目录用来存放tez的jar包,命令:hdfs dfs -mkdir -p /apps ,确保HDFS目录/apps公开可见;上传tez目录到/apps目录中,命令:hdfs dfs -put /usr/apache/tez-0.4.1-incubating /apps/,查看HDFS上的tez目录结构,命令:hdfs dfs -ls /apps/tez-0.4.1-incubating,如下图所示结构:


3. 配置tez-site.xml文件,在/usr/apache目录中创建tez-conf目录,复制hadoop配置文件mapred-site.xml到tez-conf目录中,重命名为tez-site.xml,去掉configuration标签里面的属性,也可以创建一个标准的tez-site.xml文件。在tez-site.xml文件中configuration标签添加如下内容:

<property>      <name>tez.lib.uris</name>      <value>${fs.default.name}/apps/tez-0.4.1-incubating,${fs.default.name}/apps/tez-0.4.1-incubating/lib/</value>  </property><property>    <name>tez.am.resource.memory.mb</name>    <value>1024</value></property>

备注:tez.lib.uris属性的内容为tez在HDFS上目录。

     4. 配置tez环境变量,vi /etc/profile 在末尾添加如下内容:

export TEZ_CONF_DIR=/usr/apache/tez-confexport TEZ_JARS=/usr/apache/tez-0.4.1-incubating/*:/usr/apache/tez-0.4.1-incubating/lib/*export HADOOP_CLASSPATH=${TEZ_CONF_DIR}:${TEZ_JARS}:$HADOOP_CLASSPATH

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

     5. 修改Hadoop配置文件中的mapred-site.xml文件中的属性mapreduce.framework.name的默认值yarn为yarn-tez.

备注:改了这个默认值,以后提交的job默认的运行方式为yarn-tez;我们也可以不修改这个属性,我们在提交job的是指定运行方式为yarn-tez,相关内容见下一节内容。

三、Tez上运行程序

     1. 运行Hadoop例子程序wordcount,命令:

yarn jar /usr/apache/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /tez-out01

Yarn的WebUI显示如下:

 





可以看到Application Type类型为TEZ,如果我们需要更改运行方式为MAPREDUCE,可以yarn命令中添加mapreduce.framework.name参数来修改该job的运行方式,命令如下:

yarn jar /usr/apache/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount -D mapreduce.framework.name=yarn /input /tez-out02

Yarn的WebUI显示如下:




可以看到Application Type类型为MAPREDUCE。

     2. 运行Tez例子程序orderedwordcount,命令:

yarn jar /usr/apache/tez-0.4.1-incubating/tez-mapreduce-examples-0.4.1-incubating.jar orderedwordcount /input /tez-out3

Yarn的WebUI显示如下:

四、Hive on Tez

本次使用的Hive版本是0.13.1。

     1. 复制hive-exec-0.13.1.jar到hdfs目录/apps/hive/install中。

hdfs dfs -mkdir -p /apps/hive/install

hdfs dfs -put $HIVE_HOME/lib/hive-exec-0.13.1.jar /apps/hive/install/

     2. 进入hive shell,设置hive的执行引擎。

set hive.execution.engine=tez;运行hive SQL,如下图所示:

 


Yarn的WebUI显示如下:

 


备注:在Hive shell 中如果要切换到mapreduce运行方式,则可以通过在shell中输入如下命令:

set hive.execution.engine=mr;

set mapreduce.framework.name=yarn;

如果要切换到tez运行方式,只需要在shell输入set hive.execution.engine=tez,无论你设置了set mapreduce.framework.name=yarn还是set mapreduce.framework.name=yarn-tez都对运行方式不起作用,通过设置不同的参数可以让sql运行在不同的计算框架之上。可以尝试一下set hive.execution.engine=mr;

set mapreduce.framework.name=yarn-tez组合方式。

 

注意:如果设置了set hive.execution.engine=tez后运行一个sql后,则集群中会一直存在application进程,具体表现在集群的NodeManager节点上的某一台节点上在一段时间上一直存在DAGAppMaster进程,通过Yarn Web UI也可以看到相应的application一直处于RUNNING状态,并且以后运行sql的job都由该application管理,不会生成新的application,通过Yarn Web UI可以看到只有一个application;此时如果设置set hive.execution.engine=mr后运行sql语句,则该sql也是运行在tez计算框架上,但是运行完毕后application进程不存在以及通过Yarn Web UI也可以看到相应的application状态为FINISHED,且以后运行的sql都会生成新的application,运行完毕后application也跟着完成。

 

五、参考资料

http://tez.apache.org/install.html

http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.2/bk_installing_manually_book/content/rpm-chap-tez-1.html

http://blog.csdn.net/teddeyang/article/details/19564603

http://blog.csdn.net/sardtass/article/details/35220619

http://blog.csdn.net/sardtass/article/details/35273777



0 0