Tez是一个Hive的运行引擎,性能优于MR。
用Hive直接编写MR程序,假设有四个有依赖关系的MR作业,上图中,绿色是Reduce Task,云状表示写屏蔽,需要将中间结果持久化写到HDFS。
Tez可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升作业的计算性能。
下载安装包
下载tez的依赖包:http://tez.apache.org
拷贝到Linux上
/root/soft
[root@zjj101 soft]# ll
总用量 77568
-rw-r--r--. 1 root root 61074757 10月 27 10:35 apache-tez-0.9.1-bin.tar.gz
drwxr-xr-x. 2 root root 6 10月 15
将tez包上传到HDFS上面
[root@zjj101 soft]# hadoop fs -mkdir /tez
[root@zjj101 soft]# hadoop fs -put apache-tez-0.9.1-bin.tar.gz /tez
改名解压
[root@zjj101 soft]# mv apache-tez-0.9.1-bin.tar.gz tez-0.9.1
[root@zjj101 soft]# tar -zxvf tez-0.9.1
在hive中配置Tez
tez-site.xml
进入指定目录
[root@zjj101 soft]# cd hive-1.2.1/conf/
新建一个 tez-site.xml文件
tez-site.xml内容是
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>tez.lib.uris</name>
<value>${fs.defaultFS}/tez/apache-tez-0.9.1-bin.tar.gz</value>
</property>
<property>
<name>tez.use.cluster.hadoop-libs</name>
<value>true</value>
</property>
<property>
<name>tez.history.logging.service.class</name>
<value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
</property>
</configuration>
hive-env.sh
在hive-env.sh文件中添加tez环境变量配置和依赖包环境变量配置.
在 /root/soft/hive-1.2.1/conf/ 路径下
hive-env.sh:
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/root/soft/hadoop-2.7.2
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/root/soft/hive-1.2.1/conf
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export TEZ_HOME=/root/soft/tez-0.9.1 #是你的tez的解压目录
export TEZ_JARS=""
for jar in `ls $TEZ_HOME |grep jar`; do
export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/lib/$jar
done
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:
<property>
<name>hive.execution.engine</name>
<value>tez</value>
</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