背景
传统 Shuffle 存在依赖大容量本地盘/云盘、IO 放大、高网络连接、磁盘随机读、单副本等缺陷,导致效率、稳定性和弹性不足。
Apache Celeborn
Celeborn 是一个大数据引擎统一中间数据服务,支持引擎无关的 Shuffle 和 Spilled Data,具有高性能、高稳定性和高弹性特点。
性能
- 核心设计:Partition 切分、支持 Spark AQE、Partition 合并 Join Strategy 切换、SkewJoin 优化、Map 范围读、1Split 切分、列式 Shuffle(行列转换开销低于 5%)
- 性能提升:ShuffleSize 缩减 40%
稳定
- 原地快速升级:向前兼容、优雅重启
- 流控:参考 TCP 拥塞控制(慢启动、拥塞避免、拥塞检测)
- 负载均衡:隔离坏盘、尽量分配给快盘/大盘
弹性
- Spark on K8S:开源方案支持动态资源分配
典型场景
- 存算分离:
- 完全混部:提升性能和稳定性,计算、数据、临时数据分离,完全弹性
- 源数据和 Shuffle 数据分离:部分弹性
- 超大作业:
- 混部场景:大作业稳定性与性能显著提升(1000+ Celeborn Worker,压缩后 4PB Shuffle Data)
- 存算分离场景:100 台 Celeborn Worker,数万 Pods,极致弹性,性能和稳定性显著提升
- TPCDS:3T TPCDS 性能提升 20%