Hive-3.1.1 + Tez-0.9.1

Posted 健哥说编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive-3.1.1 + Tez-0.9.1相关的知识,希望对你有一定的参考价值。

10.11TEZ

使用Tez做为Hive的查询引擎。默认情况下hive的查询引擎为MapReduce。在hive2以后和各版本中,启动hive命令行界面时,将给出以下提示:

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.

可选的引擎为SparkTez。以下为Hive集成Tez的过程。

版本说明:

Hadoop-2.7.7

Hive-3.1.1

Tez-0.9.1

准备工作,请先安装好Hadoop(HDFS,Yarn)Hive。目前已经存在伪分布式配置如下:

IP/Server

软件

进程

192.168.56.21/server21

Hadoop-2.7.7

Hive-3.1.1

NameNode

SecondaryNameNode

ResourceManager

NodeManger

DataNode

RunJar  (Hive metasstore)

 

1、下载tez

http://mirrors.hust.edu.cn/apache/tez/0.9.1/apache-tez-0.9.1-bin.tar.gz

 

2、解压

tez解压到集群的安装目录下:

# tar -zxvf  apache-tez-0.9.1-bin.tar.gz  -C  /app/

修改一下名称,否则太长了:

# mv apache-tez-0.9.1-bin  tez-0.9.1

替换hadoopjar包:

检查$TEZ_HOME/lib下的hadoop的两个jar包为

Hadoop-mapreduce-client-core-2.7.0.jar

Hadoop-mapreduce-client-common-2.7.0.jar

而我们目前使用的hadoop2.7.7,所以需要用hadoop中的包,替换tez下的包,以免发生冲突:

cp  /app/hadoop-2.7.7/share/mapreduce/hadoop/hadoop-mapreduce-client-core-2.7.7.jar /tez-0.9.1/lib/

cp /app/hadoop-2.7.7/share/mapreduce/hadoop/hadoop-mapreduce-client-common-2.7.7.jar /tez-0.9.1/lib/

 

3、配置tez-site.xml文件

$HADOOP_HOME/etc/hadoop目录下,添加tez-site.xml配置文件,内容如下:

 

<configuration>

<!--指定tez依赖的文件在hdfs上的位置,一会上传-->

        <property>

                <name>tez.lib.uris</name>

                <value>hdfs://server21:8020/user/tez/tez.tar.gz</value>

        </property>

<!--指定tez所使用的最大的java内存比例-->

        <property>

                <name>tez.container.max.java.heap.fraction</name>

                <value>0.2</value>

        </property>

</configuration>

此配置文件,可以参考:TEZ_HOME/conf/tez-default.xml文件。

 

4、上传tez.tar.gz

上传gz文件:

#hdfs dfs  -copyFromLocal  /app/tez-0.9.1/share/tez.tar.gz  /user/tez/tez.tar.gz

 

5、配置环境变量

linux中添加以下环境变量,其中黑体为添加的新配置:

export HADOOP_HOME=/app/hadoop-2.7.7

export PATH=$PATH:$HADOOP_HOME/bin

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HIVE_HOME=/app/hive-3.1.1

export PATH=$PATH:$HIVE_HOME/bin

export TEZ_CONF_DIR=$HADDOP_CONF_DIR

export TEZ_HOME=/app/tez-0.9.1

export TEZ_JARS=$TEZ_HOME/*:$TEZ_HOME/lib/*

export HADOOP_CLASSPATH=$TEZ_CONF_DIR:$TEZ_JARS:$HADOOP_CLASSPATH

 

6、启动hive命令行

目前在本机已经启动以下服务:

[root@server21 share]# jps

19428 DataNode

19604 SecondaryNameNode

19895 NodeManager

20233 RunJar

19787 ResourceManager

23579 Jps

19292 NameNode

 

进程hive命令行:

# hive

Hive>

设置hive所使用的引擎为tez

hive> set hive.execution.engine;

hive.execution.engine=mr //查询默认为mr

hive> set hive.execution.engine=tez;//设置为tez

hive> set hive.execution.engine;

hive.execution.engine=tez//再次查询已经转换成tez

 

如果不想每一次都设置,可以修改:hive-site.xml文件,添加以下配置:

<property>

<name>hive.execution.engine</name>

    <value>tez</value>

</property>

7、执行聚合查询测试

 

OK,到此,已经可以使用Tez做为Hive的引擎了。

 

Tez的参数优化:http://www.cnblogs.com/mobiwangyue/p/8405780.html


以上是关于Hive-3.1.1 + Tez-0.9.1的主要内容,如果未能解决你的问题,请参考以下文章

Hive 使用Tez引擎的配置

HIV组件

HIV T2

抗逆转录病毒药物_HIV和HBV共同患者_生命危险

太奇妙!免疫系统无视HIV病毒,反而能救命?

求助Matlab关于Harris角点检测的两个问题