Apache Tez 安装, Tez On Yarn

Tez 安装

配置

  • 操作系统:Mac OS 10.11.6
  • JDK: Oracle JDK 1.7.0_72
  • Hadoop: Apache Hadoop 2.6.5
  • Tez: Apache Tez 0.7.1
  • Tomcat: Apache Tomcat 8.5.6
  • protoc: Google Protobuf 2.5.0

以上配置,JDK 和 Hadoop 自行安装,Hadoop 的 namenode 和 Yarn 配置可顺利运行即可。Protobuf 必须是2.5.0,我个人笔记本之前装的是 3.0.0,可以编译,但是不能顺利运行(因为 Hadoop 内部的 Protobuf 都是2.5.0版本)。

编译 Tez

下载 Tez

http://apache.fayea.com/tez/0.7.1/  

上面是 Apache 的一个国内镜像,下载较快。我个人下载的是 src 版本的。因为默认的编译版很可能不是基于 Hadoop 2.6.5 的版本。而我个人笔记本上安装的是 Hadoop 2.6.5,因此有必要自行编译。

mvn clean compile package -DskipTests -Dhadoop.version=2.6.5

顺利的话,在 tez-dist/target 下有编译的 tez-0.7.1.tar.gz 的压缩包。可以使用压缩软件打开,如果内部 lib 选的 hadoop jar 不是2.6.5,可以自行把 jar 压缩进去。

tez 0.7 编译需要 nodejs 支持,如果没有安装 nodejs 的,可以下载官方打包的 bin.tar.gz, 下载下来后,打开lib, 并把自己 hadoop libs 压缩到一起。

注意:手工压缩 tez-0.7.1.tar.gz 时,去掉自带的文本文件,及 tez-ui-0.7.1.war 文件,并在 lib 下加入如下 jar:

-rw-rw-r--  1 zhenqin  staff    40471 11  1 12:00 hadoop-annotations-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff    90610 11  1 12:00 hadoop-auth-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff  3354982 11  1 12:00 hadoop-common-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff  7944061 11  1 12:00 hadoop-hdfs-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff   688209 11  1 12:01 hadoop-mapreduce-client-common-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff  1537966 11  1 12:01 hadoop-mapreduce-client-core-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff  1896185 11  1 12:00 hadoop-yarn-api-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff   151865 11  1 12:00 hadoop-yarn-client-2.6.5.jar
-rw-rw-r--  1 zhenqin  staff  1629101 11  1 12:00 hadoop-yarn-common-2.6.5.jar
-rw-r--r--  1 zhenqin  staff   319579 10  3 07:50 hadoop-yarn-server-common-2.6.5.jar
-rw-r--r--  1 zhenqin  staff    52240 10  3 07:50 hadoop-yarn-server-web-proxy-2.6.5.jar

Tez On Yarn 安装

上文打包的 tez-0.7.1.tar.gz 上传一份到 hdfs,我的 hdfs 上传目录为: /lib/tez/tez-0.7.1.tar.gz

  1. 解压 tez-0.7.1.tar.gz 到本地,并给 Hadoop claspath 加入 tez 的 lib;

编辑 etc/hadoop/hadoop-env.sh

export TEZ_JARS="/Users/zhenqin/software/tez"
for f in $TEZ_JARS/*.jar; do
  if [ "$HADOOP_CLASSPATH" ]; then
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f
  else
    export HADOOP_CLASSPATH=$f
 fi
done
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${TEZ_JARS}/lib/*
  1. copy core-site.xml 为 tez-site.xml 并加入如下内容

    <property> <name>tez.lib.uris</name> <value>hdfs:///lib/tez/tez-0.7.1.tar.gz</value> <description>tez jars and libs on hdfs.</description> </property>

  2. 测试 Tez

完成上述两个步骤后,就可以进行 countword 测试 tez 是否能正确运行:

cd tez
hadoop jar tez-examples-0.7.1.jar  orderedwordcount /input/LICENSE.txt /tezout

上述测试,/input/LICENSE.txt 是一个文本文件,我这里为了方便直接把 Apache License 上传到 HDFS。执行上述测试,如果能看到 DAG completed. FinalState=SUCCEEDED 表示 tez 安装成功。

执行成功后可以看到 hdfs /tezout下的统计字符的输出。

Tez TimeLine UI

有了上述安装成功的步骤后,你的 Hive,Pig 都可以使用 tez 引擎了(Hive Pig 使用 tez 引擎后边会单独介绍)。Tez 团队开发了一个 UI,可以方便开发人员查看。

上文提到,下载 tez tag 中有个 tez-ui-0.7.1.war 的 web 项目,该项目就是 tez 的 ui, 需要下载一个 tomcat 来运行。

下载 tomcat 后,在 tomcat 的 webapps 下创建一个 tez-ui 的文件夹,并把 tez-ui-0.7.1.war 以 zip 的解压方式解压到 tez-ui 目下。编辑 webapps/tez-ui/scripts/configs.js, 修改为:

timelineBaseUrl: 'http://localhost:8188',
RMWebUrl: 'http://localhost:8088',

启动 tomcat,可以看到 tez-ui 已经启动。但是这时并不能看到 Tez 的执行 job,这需要 yarn 的 timeline 支持。

编辑 yarn-site.xml

    <!-- conf timeline server -->
    <property>
        <name>yarn.timeline-service.enabled</name>
        <value>true</value>
    </property>

    <property>
        <name>yarn.timeline-service.hostname</name>
        <value>localhost</value>
    </property>

    <property>
        <name>yarn.timeline-service.http-cross-origin.enabled</name>
        <value>true</value>
    </property>

    <property>
        <name>yarn.resourcemanager.system-metrics-publisher.enabled</name>
        <value>true</value>
    </property>

编辑 tez-site.xml

    <property>
        <description>Enable Tez to use the Timeline Server for HistoryLogging</description>
        <name>tez.history.logging.service.class</name>
        <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
    </property>

    <property> 
        <name>tez.allow.disabled.timeline-domains</name> 
        <value>true</value> 
    </property> 

重启 hadoop yarn, 并启动 yarn 的 timeline server。

sbin/stop-yarn.sh
sbin/start-yarn.sh
sbin/yarn-daemon.sh start historyserver

这时,再次运行 orderedwordcount 的测试,去刷新 tez-ui,可以看到漂亮的 tez-ui 管理界面。

tez-ui

转载于:https://my.oschina.net/zhzhenqin/blog/781670

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值