hive7:Hive集成Tez
1.安装包准备
1)下载tez的依赖包:http://tez.apache.org
2)拷贝apache-tez-0.9.1-bin.tar.gz到/usr/local/src目录下
3)将apache-tez-0.9.1-bin.tar.gz上传到HDFS的/tez目录下
[root@master src]# hadoop fs -mkdir /tez
[root@master src]# hadoop fs -put apache-tez-0.9.1-bin.tar.gz /tez
4)解压缩apache-tez-0.9.1-bin.tar.gz
[root@master src]# tar -zxvf apache-tez-0.9.1-bin.tar.gz
5)修改名称
[root@master src]# mv apache-tez-0.9.1-bin tez-0.9.1
2.集成Tez
1)进入到Hive的配置目录
/usr/local/src/hive/conf
2)在Hive的conf目录下创建一个tez-site.xml文件
vim 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>
3)在hive-env.sh文件中添加tez环境变量配置和依赖包环境变量配置
vim hive-env.sh
export TEZ_HOME=/usr/local/src/tez-0.9.1/
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=/usr/local/src/hadoop-2.7.3/share/hadoop/common/hadoop-lzo-0.4.21-SNAPSHOT.jar$TEZ_JARS
4)在hive-site.xml文件中添加如下配置,更改hive计算引擎:
<property>
<name>hive.execution.engine</name>
<value>tez</value>
</property>
3.测试
1)启动Hive
2)创建表
create table student(
id int,
name string);
3)向表中插入数据
insert into student values(1,"zhangsan");
4)如果没有报错就表示成功了
select * from student;
如果插入时出现以下错误:
问题解决:
1)关掉虚拟内存检查,修改yarn-site.xml
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
2)修改后一定要分发,并重新启动Hadoop集群
再次插入数据:
注意版本:本人使用的环境版本:
Hadoop:2.7.3
Hive:2.3.0
tez:0.9.1
mysql-connector-java:5.1.27