日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HQL 报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 错误解决方案

發布時間:2023/12/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HQL 报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 错误解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

執行一段HQL之后,報了如下錯誤

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTas

此錯誤只能通過yarn 日志進行查看,通過查看發現報OOM,解決OOM問題不能單純增加計算空間,比如MAP以及REDUCE計算空間。
我們首先看一下日志錯誤階段,
通過日志觀察實在STAGE2階段的map階段就報錯,并沒有到REDUCE階段。
那我們就可以來看看這段SQL explain 執行計劃,計劃如下圖
發現第二階段是發生inner join,就是在join階段發生內存溢出,99%概率必然是發生傾斜或者笛卡爾積導致map階段出現問題。
那我們該如何解決呢?是直接增加計算空間和并行度,我們要看一下SQL本身有沒有問題
這段SQL如下
從這段SQL,我們可以看出是兩張表內關聯,再通過對數據探查發現,第一張表為小表,第二張表為大表,并且第二張表過濾后又加DISTICT,這塊會影響型能,但絕不是報錯主要原因,后期對關聯條件發現大表package大量重復,這原因就很明顯,發生1對多現象,絕對發生了傾斜現象。
那我們完全可以從代碼層面進行優化。
優化SQL如下
對整體去重只需要一個job,采用開窗函數 row number over,并在最終希望獲取的package在小表中,采用left semi join。
這樣最終結果就跑成功了

遇到問題不要輕易就先通過設置參數進行解決

  • 首先先從代碼進行優化
  • 其次再從設置參數 資源方面進行解決

關注老姜
嗶哩賬號:老姜的數據江湖
微信公眾號:老姜的數據江湖

總結

以上是生活随笔為你收集整理的HQL 报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 错误解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。