Tez是一个Hive的运行引擎,性能优于MR。
Hive整合Tez - 图1
用Hive直接编写MR程序,假设有四个有依赖关系的MR作业,上图中,绿色是Reduce Task,云状表示写屏蔽,需要将中间结果持久化写到HDFS。
Tez可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升作业的计算性能。

下载安装包

下载tez的依赖包:http://tez.apache.org

拷贝到Linux上

  1. /root/soft
  2. [root@zjj101 soft]# ll
  3. 总用量 77568
  4. -rw-r--r--. 1 root root 61074757 10 27 10:35 apache-tez-0.9.1-bin.tar.gz
  5. drwxr-xr-x. 2 root root 6 10 15

将tez包上传到HDFS上面

  1. [root@zjj101 soft]# hadoop fs -mkdir /tez
  2. [root@zjj101 soft]# hadoop fs -put apache-tez-0.9.1-bin.tar.gz /tez

改名解压

  1. [root@zjj101 soft]# mv apache-tez-0.9.1-bin.tar.gz tez-0.9.1
  2. [root@zjj101 soft]# tar -zxvf tez-0.9.1

在hive中配置Tez

tez-site.xml

进入指定目录

  1. [root@zjj101 soft]# cd hive-1.2.1/conf/

新建一个 tez-site.xml文件

tez-site.xml内容是

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>tez.lib.uris</name>
  6. <value>${fs.defaultFS}/tez/apache-tez-0.9.1-bin.tar.gz</value>
  7. </property>
  8. <property>
  9. <name>tez.use.cluster.hadoop-libs</name>
  10. <value>true</value>
  11. </property>
  12. <property>
  13. <name>tez.history.logging.service.class</name>
  14. <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
  15. </property>
  16. </configuration>

hive-env.sh

在hive-env.sh文件中添加tez环境变量配置和依赖包环境变量配置.
在 /root/soft/hive-1.2.1/conf/ 路径下

hive-env.sh:

  1. # Set HADOOP_HOME to point to a specific hadoop install directory
  2. export HADOOP_HOME=/root/soft/hadoop-2.7.2
  3. # Hive Configuration Directory can be controlled by:
  4. export HIVE_CONF_DIR=/root/soft/hive-1.2.1/conf
  5. # Folder containing extra libraries required for hive compilation/execution can be controlled by:
  6. export TEZ_HOME=/root/soft/tez-0.9.1 #是你的tez的解压目录
  7. export TEZ_JARS=""
  8. for jar in `ls $TEZ_HOME |grep jar`; do
  9. export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/$jar
  10. done
  11. for jar in `ls $TEZ_HOME/lib`; do
  12. export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/lib/$jar
  13. done
  14. export HIVE_AUX_JARS_PATH=/root/soft/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS

需要注意下面这个路径必须要有hadoop-lzo-0.4.20.jarjar
export HIVE_AUX_JARS_PATH=/root/soft/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar
因为我的hive配置了lzo压缩,所以有这个东西.

hive-site.xml

在hive-site.xml文件中添加如下配置,更改hive计算引擎

/root/soft/hive-1.2.1/conf/hive-site.xml:

  1. <property>
  2. <name>hive.execution.engine</name>
  3. <value>tez</value>
  4. </property>

启动Hive测试

启动Hive
bin/hive
创建表
hive (default)> create table student(
id int,
name string);
向表中插入数据
hive (default)> insert into student values(1,”zhangsan”);
如果没有报错就表示成功了
hive (default)> select * from student;
1 zhangsan