hive on tez 错误记录

本文详细记录了在使用Hive on Tez时遇到的三种错误及解决方法。包括因内存不足导致的Container被杀,Hadoop版本不匹配引发的NoSuchFieldError,以及Hive执行引擎配置问题产生的Execution Error。通过调整Tez配置,更新Hadoop依赖,配置Hive和YARN的环境变量等措施,成功解决了问题。
摘要由CSDN通过智能技术生成

 

1、执行过程失败,报 Container killed on request. Exit code is 143   

如下图:

 

 

分析:造成这种原因是由于总内存不多,而容器在jvm中占比过高,修改tez-site.xml文件,添加如下配置:

<property>
        <name>tez.container.max.java.heap.fraction</name>
        <value>0.2</value>   #调低内存占比,默认是0.8(也就是80%)
</property>

 2、ERROR [main] exec.TaskRunner: Error in executeTask java.lang.NoSuchFieldError: DEFAULT_MR_AM_ADMIN_USER_ENV

分析:

  • hadoop版本与tez所带的hadoop版本不一致。
  • 没有配置tez的类路径或者配置失效。

解决:

  • 第一种情况,删除tez的lib目录下的hadoop包,然后拷贝hadoop lib下的hadoop包过去。(参考上篇hive on tez)
  • 第二种情况,在hadoop-env.sh配置环境变量 或者拷贝tez目录或者tez的lib目录下的.jar包到hive下的lib目录。
1、hadoop-env.sh配置环境变量
TEZ_CONF_DIR=/data1/hadoop/hadoop/etc/hadoop/ TEZ_JARS=/tez-0.9.0 export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*
或者
2、拷贝jar文件到hive
#cp /tez-0.9.0/*.jar /data1/hadoop/hive/lib
#cp /tez-0.9.0/lib/*.jar /data1/hadoop/hive/lib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值