Windows10配置運行Hive on tez
背景
前面博客已經介紹了如何配置Hadoop和Hive運行環境。即本文開始前,本地已經順利運行Hive,并可以提交hive on mr任務。
在hive領域中,tez是其中一款比較常用的執行引擎。其支持DAG作業模式,可以將多個有依賴的作業轉換為一個作業從而大幅提升DAG作業的性能。Hive也有一部分優化特性基于tez實現。
本文介紹如何讓hive啟動執行tez任務。步驟主要的執行環境是Windows PowerShell,但組件對Windows的支持實在不友好,有部分內容不得不使用WSL。WSL下使用Hadoop和Hive方式基本類似,后續有需要再補充。
版本
OS:Windows 10 Pro 1903
Java:1.8.0_261
Tez:apache-tez-0.9.2-bin.tar.gz
(可以在 官方主頁 找到下載,也可以在 Apache Backup Site 中下載)
tomcat:8.5.60,官網下載
前置依賴
tez版本選擇
經過測試,3.1.0支持使用tez-0.9.2
其他版本需要自行測試,如發現不合適可以稍作調整
啟動HDFS,以便上傳tez lib
WSL環境
支持tez ui運行,支持tar打包命令
如果沒有WSL環境,則不必執行配置步驟6、7,影響是不能使用tez的日志web頁面,看任務執行細節不太方便
配置步驟
目的:配置 tez.lib.uris
解壓,apache-tez-0.9.2-bin.tar.gz
目錄結構
apache-tez-0.9.2-bin |- share |- |- tez.tar.gz |- conf |- |- tez-default-template.xml |- |- tez-runtime-default-template.xml |- lib |- tez-ui-0.9.2.war |- ...
準備apache-tez-0.9.2-bin/share目錄下的tez.tar.gz
上傳hdfs
# PowerShell下執行 hadoop fs -mkdir -p /apps/tez hadoop fs -put tez.tar.gz /apps/tez hadoop fs -ls /apps/tez # WSL模式安裝的Hadoop, 執行命令類似
新建配置tez-site.xml
先放在 apache-tez-0.9.2-bin/conf 目錄下
修改配置yarn-site.xml
$HADOOP_HOME/etc/hadoop 目錄下
可選配置:要求WSL環境支持
可選,啟動timeline server:http://localhost:8188/
./sbin/yarn-daemon.sh start timelineserver
可選,啟動jobhistory server:http://localhost:19888/
./sbin/mr-jobhistory-daemon.sh start historyserver
可選啟動tez ui:要求WSL環境支持
準備tez目錄下的tez-ui-0.9.2.war
解壓apache-tomcat-8.5.60
配置:conf/server.xml
添加到webapps 清空webapps(先備份再清空) cp tez-ui-0.9.2.war ROOT.war 啟動 ./bin/startup.sh # 啟動第一次,以解壓war ./bin/shutdown.sh # 停止,以便修改配置 修改配置:webapps/ROOT/config 默認端口就是rm 8088和timeline 8188 如實際端口不對,需要自行調整 配置hive on tez 復制配置文件到hive conf cp apache-tez-0.9.2-bin/conf/tez-site.xml $HIVE_HOME/conf/ 這就不必修改HADOOP_CLASSPATH來添加tez-site.xml文件,因為啟動hive時默認會加載hive conf目錄 添加配置(tez-site.xml) 添加配置(mapred-site.xml) 可用性測試 Windows10非WSL環境下,無tez ui D:\install\apache-tez-0.9.2-bin目錄下 環境變量 $env:TEZ_CONF_DIR="D:\install\apache-tez-0.9.2-bin\conf" $env:TEZ_JARS="D:\install\apache-tez-0.9.2-bin" $env:HADOOP_CLASSPATH="$env:TEZ_CONF_DIR;$env:TEZ_JARS\*;$env:TEZ_JARS\lib\*" 測試數據 hadoop fs -put LICENSE /tmp 執行樣例 hadoop jar tez-examples-0.9.2.jar orderedwordcount /tmp/LICENSE /tmp/result 通過hdfs查看結果 hadoop fs -cat /tmp/result/part-v002-o000-r-00000 可選:已啟動tez ui http://localhost:8088/cluster 可以看到運行記錄 啟動時添加環境變量 export TEZ_HOME=/mnt/d/install/apache-tez-0.9.2-bin for jar in `ls $TEZ_HOME | grep jar`; do export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar done for jar in `ls $TEZ_HOME/lib`; do export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar done hive 測試語句 set hive.execution.engine=tez; -- SQL1 select a.wr_returned_date_sk, a.cnt, b.cnt from (select wr_returned_date_sk, count(1) as cnt from web_returns where wr_returned_date_sk between 2452977 and 2452979 group by wr_returned_date_sk) a join ( select wr_returned_date_sk, count(1) as cnt from web_returns where wr_returned_date_sk between 2452977 and 2452979 group by wr_returned_date_sk ) b on a.wr_returned_date_sk = b.wr_returned_date_sk; -- SQL2 select * from (select wr_returned_date_sk from web_returns where wr_returned_date_sk between 2452977 and 2452979 ) a join ( select wr_returned_date_sk from web_returns where wr_returned_date_sk between 2452977 and 2452979 ) b on a.wr_returned_date_sk = b.wr_returned_date_sk; 后續啟動或停止 可選啟動tez ui:要求WSL環境支持 cd $HADOOP_HOME ./sbin/start-yarn.sh ./sbin/yarn-daemon.sh start timelineserver ./sbin/mr-jobhistory-daemon.sh start historyserver cd /mnt/d/install/apache-tomcat-tez-ui ./bin/startup.sh 環境變量設置 export TEZ_HOME=/mnt/d/install/apache-tez-0.9.2-bin for jar in `ls $TEZ_HOME |grep jar`; do export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar done for jar in `ls $TEZ_HOME/lib`; do export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar done 啟動hive hive 其他問題 java.lang.IllegalArgumentException: Illegal Capacity: -10444 https://issues.apache.org/jira/browse/HIVE-19918 hive.tez.container.size 參考文檔 http://tez.apache.org/install.html https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-Tez http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/TimelineServer.html https://issues.apache.org/jira/browse/YARN-9517 https://issues.apache.org/jira/browse/YARN-4037 https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/ClusterSetup.html https://stackoverflow.com/questions/43441437/container-is-running-beyond-virtual-memory-limits https://tez.apache.org/tez-ui.html https://support.datameer.com/hc/en-us/articles/115005289466-How-to-Enable-Tez-History-UI-for-Hadoop- https://cwiki.apache.org/confluence/display/Hive/Hive+on+Tez#HiveonTez-InstallationandConfiguration https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.5.3/bk_command-line-installation/content/ref-a80115dc-6300-4372-9c8e-6f7c0f902b92.1.html EI企業智能 Hive Windows 智能數據 表格存儲服務 CloudTable
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。