目录
- 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支持