文章目錄
Example
spark數據傾斜現象
- 單個Executor執行時間久
- OOM
- Executor
- Driver
- Timeout
數據傾斜原因
發現數據傾斜
- 使用sample算子進行抽樣
- 使用countByValue對抽樣數據進行聚合計算
- 取出前N觀察
數據傾斜 Solution 1 – 使用reduceByKey
- groupByKey轉換爲reduceByKey
- reduceByKey可以在Map端合併
- 類似於MapReduce中的Combiner
數據傾斜 Solution 2 – 兩階段聚合
數據傾斜 Solution 3 – 擴增數據
- 大表隨機添加N種前綴,小表擴增N倍