配置 Hive On Tez


配置 Hive On Tez

標簽(空格分隔): hive


Tez 部署底層應用

簡單介紹

介紹:tez 是基於hive 之上,可以將sql翻譯解析成DAG計算的引擎。基於DAG 與mr 架構本身的優缺點,tez 本身經過測試一般小任務在hive mr 的2-3倍速度左右,大任務7-10倍左右,根據情況不同可能不一樣。

對於 Tez-0.9.0 以及更高版本, Tez 需要 Apache Hadoop 版本為 2.7.0 或更高

安裝 Apache Hadoop 2.7.0 或更高版本,這里選取Tez-0.9.1 版本,在Centos 系統上編譯,需要通外網,編譯環境准備需要按照之前:

@https://www.cnblogs.com/hit-zb/p/10643240.html

Apache tez 官網:https://tez.apache.org/

Apache Tez 0.9.1 下載地址:@http://mirror.bit.edu.cn/apache/tez/0.9.1/apache-tez-0.9.1-src.tar.gz

編譯 tez

編譯環境准備完畢的情況下:

cd apache-tez-0.9.0-src
mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true

關於maven 的更多使用方法 ,請見:@https://yuzhouwan.com/posts/2254/

安裝Tez 到hive

拷貝 tez 相關 tarball 到 HDFS, 並且配置 tez-site.xml

cd apache-tez-0.9.0-src/tez-dist/target


ls
archive-tmp  maven-archiver  tez-0.9.0  tez-0.9.0-minimal  tez-0.9.0-minimal.tar.gz  tez-0.9.0.tar.gz  tez-dist-0.9.0-tests.jar

我們需要將tez-0.9.0-minimal.tar.gz 拷貝到HDFS 中某目錄下

hadoop fs -mkdir /app/
hadoop fs -copyFromLocal tez-dist/target/tez-x.y.z-minimal.tar.gz /app/

確保 tez.use.cluster.hadoop-libs 不被設置在 tez-site.xml 中, 如果設置了那么值應該為 false

將tez-0.9.0.tar.gz 移動到本地 /app/tez 相當於與 app/hive

同級別。tez 為link (軟連接)
tez-site.xml

deploy@VECS00540:/app/apache-tez-0.9.0/conf$ cat tez-site.xml 
<configuration>
    <property>
        <name>tez.lib.uris</name>
        <value>hdfs://flashHadoop/user/tez/tez.tar.gz</value>  <!-- 這里指向hdfs上的tez.tar.gz包 -->
    </property>
    <property>
        <name>tez.use.cluster.hadoop-libs</name>
        <value>true</value>
    </property>
    <property>
        <name>tez.runtime.compress</name>
        <value>false</value>
    </property>
    <property>
        <name>tez.runtime.compress.codec</name>
        <value>org.apache.hadoop.io.compress.SnappyCodec</value>
    </property>
    
    以下忽略,tez-ui 使用
<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://VECS01121:8080/tez-ui/</value>
 </property>

<property>
    <name>tez.am.tez-ui.history-url.template</name>
    <value>__HISTORY_URL_BASE__/#/tez-app/__APPLICATION_ID__</value>
  </property>
  <property>
    <name>tez.am.acls.enabled</name>
    <value>false</value>
  </property>

</configuration>

配置客戶端節點的 hadoop classpath 包含 tez-libraries 到 hadoop classpath 中

export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_HOME}/*:${TEZ_CONF_DIR}:${TEZ_HOME}/lib/*

當設置 classpath 路徑中有包含 jars 的目錄, 注意 “*” 是非常重要的
在 tez-examples.jar 中有使用 MRR 的基礎示例, 參照源碼的 OrderedWordCount.java, 運行示例: …
可以使用類似以下示例提交 MR 作業 …

hive> set hive.execution.engine=tez;
hive> 

問題:

1, tez-ui 編譯失敗, 從 apache 下載已編譯好的包使用了算
2,tez 大任務oom.設置不檢查虛擬內存或者調大與物理內存比例解決.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM