安装包下载安装
- 地址:
- 个人选择这个版本apache-tez-0.9.1-bin.tar.gz
- 把安装包上传到 /opt/software 目录
- 上传一份到HDFS的 /tez 目录
[kevin@hadoop112 software]$ hdfs dfs -mkdir /tez
[kevin@hadoop112 software]$ hdfs dfs -put /opt/software/apache-tez-0.9.1-bin.tar.gz/ /tez
- 解压
[kevin@hadoop112 software]$ tar -zxvf apache-tez-0.9.1-bin.tar.gz -C /opt/module/
- 改名
[kevin@hadoop112 module]$ mv apache-tez-0.9.1-bin/ tez-0.9.1/
集成Hive
- 在Hive 的配置目录下面创建一个 tez-site.xml 文件
[kevin@hadoop112 module]$ cd /opt/module/hive-2.3.6/conf
[kevin@hadoop112 conf]$ touch tez-site.xml
[kevin@hadoop112 conf]$ 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>
- 修改 hive-env.sh 文件
[kevin@hadoop112 conf]$ vim hive-env.sh
添加tez 环境变量配置和依赖包环境变量配置
# Set HADOOP_HOME to point to a specific hadoop install directory
# HADOOP_HOME=${bin}/../../hadoop
HADOOP_HOME=/opt/module/hadoop-2.7.2
# Hive Configuration Directory can be controlled by:
# export HIVE_CONF_DIR=
export HIVE_CONF_DIR=/opt/module/hive-2.3.6/conf
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
# export HIVE_AUX_JARS_PATH=
export TEZ_HOME=/opt/module/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
# 这里写你 hadoop-lzo 包位置
export HIVE_AUX_JARS_PATH=/opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.21-SNAPSHOT.jar$TEZ_JARS
- 修改 hive-site.xml 文件;更改 hive 计算引擎
<property>
<name>hive.execution.engine</name>
<value>tez</value>
</property>
使用
- 启动Hadoop集群
[kevin@hadoop112 hive-2.3.6]$ hadoop-cluster.sh start
- 启动hive
[kevin@hadoop112 hive-2.3.6]$ bin/hive
- 测试-创建表
hive (default)> create table student(id int, name string);
- 测试-向表中插入数据
hive (default)> insert into student values(1, "zhangsan");
- 测试-查表
select * from student;
- 退出
hive (default)> quit;
注意
- 运行 Tez 时检查到用过多内存而被 NodeManager 杀死进程问题
- 这种问题是从机上运行的 Container 试图使用过多的内存,而被 NodeManager kill 掉了。
- 解决方法:
关掉虚拟内存检查,修改 yarn-site.xml,分发
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
网友评论