目錄
- 1. SortShuffleManager與HashShuffleManager的選擇
- 2. Shuffle策略的自動選擇機制
- 3. 關鍵配置參數
- 4. 版本差異(3.0+新特性)
- 5. 異常處理與調優
- 6. 高級Shuffle服務(CSS)
1. SortShuffleManager與HashShuffleManager的選擇
- SortShuffleManager:默認使用,適用于大規模數據Shuffle場景。通過排序和合并臨時文件(SpillFile)生成索引文件(indexFile)和數據文件(dataFile),保證數據有序性。每個Stage讀取時通過索引定位數據位置。
- HashShuffleManager:適用于小規模數據場景,通過哈希分區直接分發數據,減少排序開銷。但對內存要求較高,可能引發溢出問題。
2. Shuffle策略的自動選擇機制
- 數據量閾值:
- 當Shuffle數據量較小時,優先選擇HashShuffle(無排序開銷);
- 數據量超過閾值時自動切換為SortShuffle,通過排序優化大規模數據處理效率。
- 內存限制:
- HashShuffle需要足夠的內存存儲哈希表,若內存不足會觸發溢出到磁盤;
- SortShuffle通過分階段排序和合并減少內存壓力。
- 并行度:
- SortShuffle支持