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