使用hive报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方法
生活随笔
收集整理的這篇文章主要介紹了
使用hive报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.情況
- 兩表join 其他時(shí)間數(shù)據(jù)正常插入。唯獨(dú)插入7月1日數(shù)據(jù)時(shí) , 報(bào)錯(cuò):
- join 語(yǔ)句
- 報(bào)錯(cuò)如下:
2.分析
- 為什么唯獨(dú)7月1號(hào)數(shù)據(jù)異常?是不是這天數(shù)據(jù)量過大?
- 不可能過大,過大最多導(dǎo)致執(zhí)行慢
- 兩表join時(shí),shuffer過程中導(dǎo)致導(dǎo)致同一同一分區(qū)可以過大 導(dǎo)致reduceTaks 數(shù)據(jù)分布不均勻?
- 方案1 : mapjoin 不行 mapJoin 做多建議表的大小為2G 但是單表過大
- 方法2 : 設(shè)置 reduceJoin將超過閾值的key 寫入文件 再啟用一個(gè)mapJob
3.解決
# join的鍵對(duì)應(yīng)的記錄條數(shù)超過這個(gè)值則會(huì)進(jìn)行分拆,值根據(jù)具體數(shù)據(jù)量設(shè)置 set hive.skewjoin.key=10 0000; # 如果是join過程出現(xiàn)傾斜應(yīng)該設(shè)置為trueset hive.optimize.skewjoin=true;總結(jié)
以上是生活随笔為你收集整理的使用hive报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive查询报错,return code
- 下一篇: Execution Error, ret