目錄
1 Apache Tez 1
1.1 Apache Tez介紹 1
1.2 術語介紹 1
1.3 軟件準備 2
1.4 設置tez-ui 3
1.4.1 找到war包 3
1.4.2 將tez-ui部署在tomcat 4
1.4.3 配置timelineserver 5
1.4.4 啓動hadoop 6
1.4.5 5.啓動timelineserver 6
1.4.6 啓動tomcat 7
1.5 參考資料 7
1 Apache Tez
1.1 Apache Tez介紹
爲了高效地運行存在依賴關係的作業(比如Pig和Hive產生的MapReduce作業),減少磁盤和網絡IO,Hortonworks開發了DAG計算框架Tez.Tez是從MapReduce計算框架演化而來的通用DAG計算框架,可作爲MapReduceR/Pig/Hive等系統的底層數據處理引擎,它天生融入Hadoop 2.0中的資源管理平臺YARN,且由Hadoop 2.0核心人員精心打造。
Tez有以下幾個特色:
(1) 豐富的數據流(dataflow,NOT Streaming)編程接口。
(2) 擴展性良好的”Input-Processor-Output”運行模型。
(3) 簡化數據部署(充分利用YARN框架,Tez本身僅是一個客戶端編程庫,無序事先部署相關服務)
(4) 性能優於MapReduce.
(5) 優化的資源管理(直接運行在資源管理系統YARN之上)
(6) 動態生成物理數據流(dataflow).
1.2 術語介紹
可類比數據庫中的概念理解這些術語,比如數據庫中的邏輯計劃和物理計劃:Job Vertex、Job Edge和Static Plan屬於邏輯計劃概念;Vertex、Edge和Dynamic Plan屬於物理計劃概念。
(1)Job Vertex:作業規劃中的一個階段(Stage);
(2) Job Edge:兩個不同Job Vertex之間的邏輯關聯;
(3) Vertex: 運行時生成的物化階段,由若干個可以執行的Task構成;
(4) Edge: Task之間數據移動方式;
(5) Task: 能夠完成計算任務的線程,實際運行在YARN Container中;
(6) Task cardinality: 任務基數,即Vertex產生的Task數目
(7) Static plan: 作業提交時確定的邏輯執行計劃
(8) Dynamic plan:在ApplicationMaster執行時產生的物理執行計劃
1.3 軟件準備
下載Tez,下載地址:http://tez.apache.org/releases/index.html,點擊其中一個版本,進行下載。
1、下載一個bin版本。並將之放到Linux上的:/home/software
2、解壓bin目錄到/home/installed目錄下面,命令如下:
tar -zxvf apache-tez-0.9.2-bin.tar.gz -C /home/installed/
3、在HDFS上新建文件夾/usr/tez,然後將tez的解壓目錄中的apache-tez-0.9.2-
bin/share/tez.tar.gz上傳到/usr/tez中。具體名另個如下:
hdfs fs -mkdir -p /usr/tez
cd /home/installed/apache-tez-0.9.2-bin/share
hdfs fs -put tez.tar.gz /usr/tez
4、在hadoop配置文件的目錄中etc/hadoop下vim tez-site.xml,加入如下配置,指定tez.tar.gz壓縮包在hdfs上的路徑。
<configuration>
<property>
<name>tez.lib.uris</name>
<!-- 這裏指向hdfs上的tez.tar.gz包 -->
<value>hdfs://hadoop1:9000/usr/tez/tez.tar.gz</value>
</property>
<property>
<!-- 這裏是因爲我機器內存不足,而添加的參數 -->
<name>tez.container.max.java.heap.fraction</name>
<value>0.8</value>
</property>
</configuration>
5、vim hadoop-env.sh,在文件最後添加如下內容:
TEZ_CONF_DIR=/home/installed/hadoop-2.8.5/etc/hadoop/tez-site.xml
TEZ_JARS=/home/installed/apache-tez-0.9.2-bin
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*
重啓hadoop
6、運行hive,設置如下參數:
set hive.execution.engine=tez;
如果想要恢復使用mapreduce。進行如下參數的設置:
set hive.execution.engine=mr;
也可以通過此種方式進行設置
set mapreduce.framework.name = yarn-tez;
7、在配置文件中設置執行引擎爲tez
如果不想每次進入hive都設置:set hive.execution.engine=tez;可以在hive的conf目錄下修改hive-site.xml
保存之後再重啓,再執行操作就會默認執行引擎爲tez了。
1.4 設置tez-ui
需要先安裝Tomcat
1.4.1 找到war包
下載:tez-ui-0.9.2.war
下載位置:https://repository.apache.org/content/repositories/releases/org/apache/tez/tez-ui/
1.4.2 將tez-ui部署在tomcat
#在webapps下創建tez-ui目錄
mkdir /home/installed/apache-tomcat-8.5.45/webapps/tez-ui
#進入文件
cd /home/installed/apache-tomcat-8.5.45/webapps/tez-ui
#解壓war包
unzip tez-ui-0.9.2.war
#編輯配置文件
vim config/configs.env
1.4.3 配置timelineserver
目錄:/home/installed/hadoop-2.8.5/etc/hadoop
vim 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>hadoop1</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>
<property>
<name>yarn.timeline-service.generic-application-history.enabled</name>
<value>true</value>
</property>
<property>
<description>Address for the Timeline server to start the RPC server.</description>
<name>yarn.timeline-service.address</name>
<value>hadoop1:10201</value>
</property>
<property>
<description>The http address of the Timeline service web application.</description>
<name>yarn.timeline-service.webapp.address</name>
<value>hadoop1:8188</value>
</property>
<property>
<description>The https address of the Timeline service web application.</description>
<name>yarn.timeline-service.webapp.https.address</name>
<value>hadoop1:2191</value>
</property>
<property>
<name>yarn.timeline-service.handler-thread-count</name>
<value>24</value>
</property>
vim tez-site.xml添加下列幾行,分發到各個節點。
<!--Configuring Tez to use YARN Timeline-->
<property>
<name>tez.history.logging.service.class</name>
<value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
</property>
<property>
<name>tez.tez-ui.history-url.base</name>
<value>http://192.168.106.158:8080/tez-ui/</value>
</property>
1.4.4 啓動hadoop
1.4.5 啓動timelineserver
cd $HADOOP_HOME
sbin/yarn-daemon.sh start timelineserver
1.4.6 啓動tomcat
/home/installed/apache-tomcat-8.5.45/bin/startup.sh
訪問界面
http://192.168.106.158:8080/tez-ui/
1.5 參考資料
1.Tez網站(http://tez.apache.org/)
2.Tez設計文檔(https://issues.apache.org/jira/browse/TEZ-65)
3.The Stinger Initiative: Making Apache Hive 100 Times Faster (https://blog.cloudera.com)
4.hive on tez(https://cwiki.apache.org/confluence/display/Hive/Hive+on+Tez)
博文介紹:
https://blog.csdn.net/u011596455/article/details/86557990