Hive 的安装之 Tez 引擎的安装

Hive 的安装之 Tez 引擎的安装

5、安装 Tez 引擎

  • Tez 是一个 Hive 的运行引擎,性能优于MR

在这里插入图片描述

  • 用 Hive 直接编写MR程序,假设有四个有依赖关系的MR作业,上图中,绿色是Reduce Task,云状表示写屏蔽,需要将中间结果持久化写到 HDFS。

  • Tez 可以将多个有依赖的作业转换为一个作业,这样只需写一次 HDFS,且中间节点较少,从而大大提升作业的计算性能。

5.1 将 tez 安装包拷贝到集群,并解压 tar 包

[xiaoxq@hadoop105 ~]$ mkdir -p /opt/module/tez
[xiaoxq@hadoop105 ~]$ tar -zxvf /opt/software/tez-0.10.1-SNAPSHOT-minimal.tar.gz -C /opt/module/tez

5.2 上传 tez 依赖到 HDFS

[xiaoxq@hadoop105 software]$ hadoop fs -mkdir /tez
[xiaoxq@hadoop105 software]$ hadoop fs -put /opt/software/tez-0.10.1-SNAPSHOT.tar.gz  /tez

在这里插入图片描述

在这里插入图片描述

5.3 新建 tez-site.xml

[xiaoxq@hadoop105 hadoop]$ pwd
/opt/ha/hadoop-3.1.3/etc/hadoop

[xiaoxq@hadoop105 hadoop]$ 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/tez-0.10.1-SNAPSHOT.tar.gz</value>
</property>
<property>
     <name>tez.use.cluster.hadoop-libs</name>
     <value>true</value>
</property>
<property>
     <name>tez.am.resource.memory.mb</name>
     <value>1024</value>
</property>
<property>
     <name>tez.am.resource.cpu.vcores</name>
     <value>1</value>
</property>
<property>
     <name>tez.container.max.java.heap.fraction</name>
     <value>0.4</value>
</property>
<property>
     <name>tez.task.resource.memory.mb</name>
     <value>1024</value>
</property>
<property>
     <name>tez.task.resource.cpu.vcores</name>
     <value>1</value>
</property>
</configuration>

5.4 修改 Hadoop 环境变量

[xiaoxq@hadoop105 hadoop]$ vim $HADOOP_HOME/etc/hadoop/shellprofile.d/tez.sh
  • 添加Tez的Jar包相关信息
hadoop_add_profile tez
function _tez_hadoop_classpath
{
    hadoop_add_classpath "$HADOOP_HOME/etc/hadoop" after
    hadoop_add_classpath "/opt/module/tez/*" after
    hadoop_add_classpath "/opt/module/tez/lib/*" after
}

5.5 修改 Hive 的计算引擎

[xiaoxq@hadoop105 hadoop]$ vim $HIVE_HOME/conf/hive-site.xml
  • 添加
<property>
    <name>hive.execution.engine</name>
    <value>tez</value>
</property>
<property>
    <name>hive.tez.container.size</name>
    <value>1024</value>
</property>

5.6 尝试调节容量调度器的资源调度策略

  • 如果更换 Tez 引擎后,执行任务卡住,可以尝试调节容量调度器的资源调度策略
  • 将$HADOOP_HOME/etc/hadoop/capacity-scheduler.xml文件中的
[xiaoxq@hadoop105 hadoop]$ vim $HADOOP_HOME/etc/hadoop/capacity-scheduler.xml
<property>
    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
    <value>0.1</value>
    <description>
      Maximum percent of resources in the cluster which can be used to run 
      application masters i.e. controls number of concurrent running
      applications.
    </description>
</property>
  • 改成
<property>
    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
    <value>1</value>
    <description>
      Maximum percent of resources in the cluster which can be used to run 
      application masters i.e. controls number of concurrent running
      applications.
    </description>
</property>

5.7 JVM堆内存溢出

(tez 需要的内存比较大,并且会对虚拟内存有个校验)

  • 解决:在yarn-site.xml中加入如下代码
[xiaoxq@hadoop105 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml 
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

5.8 解决日志 Jar 包冲突

[xiaoxq@hadoop105 software]$ mv /opt/module/tez/lib/slf4j-log4j12-1.7.10.jar /opt/module/tez/lib/slf4j-log4j12-1.7.10.bak

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值