配置 Hive On Tez

Posted hit-zb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置 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

[email protected]:/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.设置不检查虚拟内存或者调大与物理内存比例解决.

以上是关于配置 Hive On Tez的主要内容,如果未能解决你的问题,请参考以下文章

记一发Hive on tez的配置(Hive 3.1.1, Hadoop 3.0.3, Tez 0.9.1)

hive on tez 错误记录

Hive on Tez

hive on spark VS SparkSQL VS hive on tez

hive on tez

hive on spark VS SparkSQL VS hive on tez