hive计算,报错FAILED: return code 3 fromorg.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
问题:在运行hivesql的时候,可能会碰到错误代码:
FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
环境:hive使用的MR引擎计算的。
原因:开启了hive的mapjoin,(设置参数数hive.auto.convert.join=true 默认开启)在map端就会进行表的join,
可以省略reduce阶段,时效更快,但是需要足够的内存,因为在map端join,需要其中一张表在每一个map中都有完整的数据,才能和另外一张表分布在map中的数据关联,如果内存不够,就会报这个错。
mapjoin的过程:
通过MapReduce Local Task,将小表读入内存,生成HashTableFiles上传至Distributed Cache中,这里会HashTableFiles进行压缩。MapReduce Job在Map阶段,每个Mapper从Distributed Cache读取HashTableFiles到内存中,顺序扫描大表,在Map阶段直接进行Join,将数据传递给下一个MapReduce任务。
Map阶段进行表之间的连接。而不需要进入到Reduce阶段才进行连接。这样就节省了在Shuffle阶段时要进行的大量数据传输。从而起到了优化作业的作用。
解决措施:
1、在hivesql的时候指定 hive.auto.convert.join=false
2、修改配置文件hive_conf.xml
<property>
<name>hive.auto.convert.join</name>
<value>false</value>//true修改为false
<description>Enables the optimization about converting common join into mapjoin</description>
</property>
mapjoin的使用方法以及注意事项参考链接:
https://blog.csdn.net/sinat_37574187/article/details/120444216
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghahfa
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13