AI智能总结
Spark/Flink+Celeborn:更快,更稳,更弹性 演讲人:一锤—阿里云 背景 传统Shuffle的问题 传统Shuffle的缺陷 •依赖大容量本地盘/云盘•IO放大•高网络连接•磁盘随机读•单副本 限制 •不够高效•不够稳定•不够弹性 ApacheCeleborn(Incubating) Celeborn:大数据引擎统一中间数据服务 •引擎无关•Shuffle+Spilleddata https://github.com/apache/incubator-celeborn •700+Commits•33Contributors, 7 Committers (3 in-coming)•370+ Stars 性能 核心设计 Partition切分 支持SparkAQE Partition合并Join Strategy切换SkewJoin优化 Map范围读 1Split切分 列式Shuffle 行列转换: (Int, String, Decimal) •行列转换•代码生成 •解释执行 •代码生成 •ShuffleSize缩减40%,行列转换开销低于5% 多层存储 •内存/本地盘/OSS(HDFS)•可任选1/2/3层配置•让数据尽可能存在快存储 稳定 原地快速升级 •向前兼容•优雅重启 流控 参考TCP的拥塞控制 •慢启动•拥塞避免•拥塞检测 其他实现:CreditBased•FlinkShuffleRead 负载均衡 •隔离坏盘•尽量分配给快盘/大盘 弹性 SparkonK8S 开源方案:spark.dynamicAllocation.shuffleTracking.enabled=true 限制:几乎无法释放pod 典型场景 存算分离 完全混部 •提升性能&稳定性 •提升性能&稳定性•计算,数据,临时数据分离•完全弹性 •提升性能&稳定性•源数据和Shuffle数据分离•部分弹性 超大作业 •混部场景:大作业稳定性&性能显著提升 •1000+CelebornWorker•压缩后4PBShuffleData 存算分离 •存算分离场景•100台CelebornWorker•数万pods,极致弹性•性能和稳定性显著提升 TPCDS •3TTPCDS20%性能提升 感谢您的观看 演讲人:一锤-阿里云