欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hive整合Tez

程序员文章站 2022-04-29 08:59:57
...

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

下载安装包

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

拷贝到Linux上


/root/soft
[aaa@qq.com 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上面


[aaa@qq.com soft]#  hadoop fs -mkdir /tez
[aaa@qq.com soft]# hadoop fs -put apache-tez-0.9.1-bin.tar.gz  /tez

改名解压

[aaa@qq.com soft]# mv apache-tez-0.9.1-bin.tar.gz  tez-0.9.1
[aaa@qq.com soft]# tar -zxvf tez-0.9.1

在hive中配置Tez

tez-site.xml

进入指定目录

[aaa@qq.com 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