Hive on Tez

参考

http://tez.apache.org/install.html

https://cwiki.apache.org/confluence/display/Hive/Hive+on+Tez

https://cwiki.apache.org/confluence/display/Hive/Hive-Tez+Compatibility

https://github.com/apache/incubator-tez/blob/branch-0.2.0/INSTALL.txt

前言

每次运行HiveQL的时候都会有这么一条警告【WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.】

说明Hive-on-mr在Hive2中是不被推荐的,并且在将来的版本中可能不可用,那我们就考虑使用Tez来代替MR,前提是你已经有了Hive的运行环境,Tez的源码编译详见我的另一篇博客【https://blog.csdn.net/DataIntel_XiAn/article/details/99321925】

接下来看一下版本匹配问题,所以我使用hive2.3.2和tez0.9.1

Hive on Tez_第1张图片

在HDFS上新建一个目录,然后将编译好的tez的所有jar包上传上去

hdfs dfs -put tez-0.9.1 /tez

在hadoop下新建配置文件【tez-site.xml】如下,说明:因为不会递归查找,所以官方建议分别配置base和lib并用逗号隔开


      
        tez.lib.uris  
        ${fs.defaultFS}/tez/tez-0.9.1,${fs.defaultFS}/tez/tez-0.9.1/lib
     

修改mapred-site.xml如下


    
        mapreduce.framework.name
        yarn-tez
    

在hadoop-env.sh最后追加以下配置

# tez
export TEZ_CONF_DIR=/home/hadoop/hadoop-2.7.7/etc/hadoop/tez.site.xml
export TEZ_JARS=/home/hadoop/tez-0.9.1
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_CONF_DIR:$TEZ_JARS/*:$TEZ_JARS/lib/*

测试之前记得重启hadoop【计算引擎切换使用:set hive.execution.engine=tez;】

mr耗时59秒

Hive on Tez_第2张图片

tez耗时3秒

Hive on Tez_第3张图片

好像区别不是很明显,那我们增加数据量到1000万条

Hive on Tez_第4张图片

mr耗时182.9秒

Hive on Tez_第5张图片

tez耗时16.0秒

你可能感兴趣的:(#,Tez,#,Hive,tez,hive)