Apache Tez on hive
———————————————————— 调配 Hadoop ————————————————————
需要在 hadoop 的 master 节点上面的 ${HADOOP_HOME}/etc/hadoop 目录下面创建一个 tez-site.xml 文件,里面填写如下内容
以上完成了tez的基本配置,接下来有 2 中方法使我们的任务运行在tez上,一种修改
mapreduce-site.xml 设置 yarn 改为 yarn-tez
第二种,修改 hive 直接运行在 tez 上
第三种 hive set tez
———————————————————— hive on tez (单个 job 运行 Tez) ————————————————————
1 将编译好的 tez(编译成功的包会放在tez-dist/target )所有jar 包放入 hive下。
find . -name "*jar" -print | cp -a `xargs` tezlib/
上面命令得到 tez 所有jar 包。
2 hive on tez 的使用方式 配置好以后 进入 hive
hive (default)>set hive.execution.engine=tez;
- set hive.execution.engine=mr 或 退出 hive 即可
—————————————————— Hive on tez 性能测试——————————————————
实验 a 164M b 164M c 1.7G d 164M, e 164M
———————————————— hive on MR 3 分 9 秒 ————————————————
———————————————— hive on tez 22.5 秒 ————————————————
———————————————————— hive on tez (所有 job 运行 Tez) ————————————————————
Tez部署完毕后,下载hive0.14.0的二进制文件,解压即可。然后在hive的conf目录下新建hive-site.xml进行常规的配置,如果要是此hive运行在tez上,可以在配置文件中加上:
<property>
<name>mapreduce.framework.name</name>
<value>yarn-tez</value>
</property>
当然这个配置也能加在mapsite.xml里,建议加在需要hive-site.xml以不影响集群其他hive。
然后打开命令行,首先执行set hive.execution.engine=tez; 这里说下这个配置的含义,
Setting execution engine to mr and framework name to yarn = Hive compiles to MR and runs on MR.
Setting execution engine to mr and framework name to yarn-tez = Hive compiles to MR and runs on Tez.
Setting execution engine to tez = Hive compiles to Tez and runs on Tez.