002__Hive的tez引擎的配置步骤

tez下载路径: https://dlcdn.apache.org/tez/
注意版本问题:

hadoop-3.1.4丶hive-3.1.3丶tez-0.10.1 这三个版本为一套指定是没问题的
hadoop-2.7 丶hive2.7 丶tez-0.9.1 应该也是没问题

第一步:

由于各个集群之间都需要使用tez,而将tez分发到各个集群,又很浪费磁盘空间,
所以我们可以将 tez的tar.gz包上传到 hdfs上面供各个机器使用

hadoop fs -mkdir /tez
hadoop fs -put /opt/software/apache-tez-0.9.1-bin.tar.gz /tez
hdfs dfs -mkdir dir 创建文件夹
hdfs dfs -rmr dir 删除文件夹dir
hdfs dfs -ls 查看目录文件信息
hdfs dfs -lsr 递归查看文件目录信息
hdfs dfs -stat path 返回指定路径的信息

第二步:

将tez的tar.gz包进行解压后, 进入到hive/conf下
注意 :== 下面代码的 ${fs.defaultFS} 和 hadoop中的属性要一样,有可能hadoop中配置的是==

vim tez-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
    <!--hdfs上的tez包的存储路径-->
        <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>

第三步:

将tez的路径配置到hive的环境变量中:

vim hive-env.sh # 在最后面加上一下内容

export TEZ_HOME=/opt/module/tez-0.9.1    #是你的tez的解压目录
export TEZ_JARS=""  
#读取到tez下的jar包
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
# 配置支持lzo压缩
export HIVE_AUX_JARS_PATH=/opt/module/hadoop/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS

第四步:

配置hive-site.xml:加上下面内容,更换为tez引擎

<property>
    <name>hive.execution.engine</name>
    <value>tez</value>
</property>

到这里基本上就配置完成了, 可以去创建个表插入一条数据试一试是否能够执行成功


问题1: 出现Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask

原因: 可能是tez的版本为1.0以下,而hive的版本为3.0以上的,会造成版本不兼容问题

第一种解决方案: 将hive版本降为2.0的


第二种解决方案:
修改tez文件中的属性:

vi tez-default-template.xml

修改下面的属性为false

 <property>
    <name>tez.client.asynchronous-stop</name>
    <defaultValue>false</defaultValue>
    <description>Boolean value. Backwards compatibility setting. Changes TezClient stop to be a
 synchronous call waiting until AM is in a final state before returning to the user.
 Expert level setting.</description>
    <type>boolean</type>
  </property>

tar.gz包压缩命令: tar -zcvf car.tar.gz #文件目录

然后将tez重新进行打包, 上传到hdfs的路径上, 记得与第二步中的tez-site.xml文件的中的路径进行匹配上

这样这个问题就可以解决了!.,希望能帮到你们!!!

问题2: 内存不足问题.

原因: 这是因为yarn的虚拟内存检查模式太过于霸道

解决:yarn-site.xml加上下面内容

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

注意: 更改后记得进行分发, 并将集群进行重新启动

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值