Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask问题解决

发现这个报错后,就网上查资料喽。目前看下来两种情况比较常见,不排除其他可能。一般排查方式也是查看hive日志,job日志在你的HIVEHOME/conf的hive?log4j.properties下的hive.log.dir={java.io.tmpdir}/user.name所指的目录下,如果日志使用的是默认的配置,则在主机的/tmp/user.name所指的目录下;当然我也是先进了看了这路径下的日志,缺没有发现错误信息。。。然后摸索着去看了hiveserver2的日志发现了问题所在,然后解决了问题。下面总结下常见的两种情况

第一种,yarn资源不足

原因:
该错误是YARN的虚拟内存计算方式导致,上例中用户程序申请的内存为1Gb,YARN根据此值乘以一个比例(默认为2.1)得出申请的虚拟内存的值,当YARN计算的用户程序所需虚拟内存值大于计算出来的值时,就会报出以上错误。调节比例值可以解决该问题。具体参数为:yarn-site.xml中的yarn.nodemanager.vmem-pmem-ratio

解决方法:
调整hadoop配置文件yarn-site.xml中值:


   yarn.scheduler.minimum-allocation-mb
   2048
   default value is 1024


    yarn.nodemanager.vmem-pmem-ratio
    2.1
    default value is 2.1

增加yarn.scheduler.minimum-allocation-mb 数量,从缺省1024改为2048;上述运行问题即刻得到解决;
单独调整yarn.nodemanager.vmem-pmem-ratio从缺省值2.1调整到3.0,从计算上Vm=3.0*1=3.0>2.6 ,但是上述问题依然存在

PS:因本人遇到的不是这个问题,所以上述解决方法无法验证有效性,但因上述原因与具体处理有初入,不好做判断具体的有效性。

第二种,hdfs相关问题

这里面又存在网上搜到的目录不存在的错误,创建目录即可;而本人遇到的是权限问题,即切换成新建用户后,只对新用户设置了HIVE的权限,测试的时候表查询等操作没有问题,但是具体运行时报错,猜测原因是直接select等操作时没有问题,但其中有其他操作需要hdfs权限的时候就报错了。于是我把新用户在hdfs上的权限加上后,就解决了该问题。但是具体原因,因为没找到理论依据,目前只能是上述的猜测,日后若找到理论依据会补充上来。

你可能感兴趣的:(大数据技术)