HiveQL中如何排查資料傾斜問題

2021-10-18 04:16:04 字數 820 閱讀 6251

資料傾斜的現象:

會導致的問題

可能會導致下面2個問題

1)某個reduce task,卡在99.9%半天不動。如下

2)任務超時被殺掉

reduce處理的資料量巨大,在做full gc的時候,stop the world。導致響應超時,超出預設的600秒,任務被殺掉。報錯資訊

如何判斷:

通過時間判斷

如果某個reduce的時間比其他reduce時間長的多。(注意:如果每個reduce執行時間差不多,都特別長,則可能是reduce設定過少導致的)。如下圖。大部分task在4分鐘之內完成,只有r_000021這個task在30分鐘內還沒完成。

另外注意,這裡面需要排除一種特殊情況。有時候,某個task執行的節點可能有問題,導致任務跑的特別慢。這個時候,mapreduce的推測執行,會重啟乙個任務。如果新的任務在很短時間內能完成,通常則是由於task執行節點問題導致的個別task慢。如果推測執行後的task執行任務也特別慢,那更能說明該task可能會有傾斜問題。

//todo

HQL排查資料傾斜

如果某個key下記錄數遠超其他key,在join或group的時候可能會導致某個reduce任務特別慢。可能會導致下面2個問題 1 某個reduce task,卡在99.9 半天不動 2 任務超時被殺掉 通過時間判斷 如果某個reduce的時間比其他reduce時間長的多。才可以檢視web ui,大...

大資料中的資料傾斜

文章結構 先大致解釋一下什麼是資料傾斜 再根據幾個場景來描述一下資料傾斜產生的情況 詳細分析一下在hadoop和spark中產生資料傾斜的原因 如何解決 優化 資料傾斜問題?簡單的講,資料傾斜就是我們在計算資料的時候,資料的分散度不夠,導致大量的資料集中到了一台或者幾台機器上計算,這些資料的計算速度...

Hive中資料傾斜問題

在做shuffle階段的優化過程中,遇到了資料傾斜的問題,造成了對一些情況下優化效果不明顯。主要是因為在job完成後的所得到的counters是整個job的總和,優化是基於這些counters得出的平均值,而由於資料傾斜的原因造成map處理資料量的差異過大,使得這些平均值能代表的價值降低。hive的...