在hadoop日常工作中,本地运行hive有时成功有时失败
遇到FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask异常
排查:
——> 直接在hadoop集群多次测试运行hive,没有出现错误,查询resourcemanage日志,
发现资源分配并无异常,根据job的id号追踪到datanode,日志显示也没有异常信息。
排除集群环境出错的情况。
——> 换台本地机器多次测试,也没有出现错误,所以问题出在出错的本地机器上。
——> 再次在本地测试跑hive语句,根据job的id号到集群服务器上查看,也没有异常,但是本地机器界面却显示错误,无法跑mr。
经再次排查:
原来是最近hadoop集群新增加了不少datanode节点服务器,而esourcemanager都是通过
域名来管理资源。当然集群上的每台服务器都通过salt同步过了,但有些同事的本地host环境并未添加
相关域名ip转换,所以当用hive提交任务时候,提交上去了,集群里在跑并把job分配给了新增加的
datanode,本地解析不了该域名,报错;如果集群resourcemanager把job分配到了原来老的datanode上,
本地能解析就显示正常。这也是为什么hive会有时候成功有时候失败。
解决办法:如有动态新增节点时,不仅同步集群的host环境,并提示各操作同事本地也同步一下。