irpas技术客

Hive执行 报错:FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.

未知 3739

项目场景:

?

HiveOnSpark环境下执行hive脚本,报错。


问题描述:

提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码:

@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget(); }
原因分析:

?通过在网上找资料:发现主要原因是数据倾斜导致的问题。executor内存不足导致spark task的任务失败。


解决方案:

解决方法 1: 对数据更大的表通过进行GROUP BY 还有去重 等操作,减少数据量。 解决方法 2:

修改hive的配置参数 set hive.auto.convert.join = false; 说明: 将Join转成普通的Map Join 默认值: false set hive.ignore.mapjoin.hint = false; 说明:? 忽略mapjoin hint ,即mapjoin标记 默认值: true,默认忽略 set hive.exec.parallel = true; 说明:是否并行提交任务 默认值:false,关闭此功能 ?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #hive报错code3 #中接收数据代码Override #PUBLIC #void #run