- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- <iframe src="https://www.slidestalk.com/DolphinScheduler/SparkCeleborn56041?embed" frame border="0" width="640" height="360" scrolling="no" allowfullscreen="true">复制
- 微信扫一扫分享
Spark+Celeborn
展开查看详情
1 .
2 .传统Shuffle的问题 Apache Spark • 广为流行的大数据处理引擎 传统Shuffle的缺陷 • 依赖大容量本地盘/云盘 • RDD Under Everything • 内存占用,IO放大 • 高网络连接 • 磁盘随机读 • 单副本 限制 • 不够高效 • 不够稳定 • Shuffle:宽依赖的实现机制 • 不够弹性
3 .Apache Celeborn (Incubating) Celeborn: 大数据引擎统一中间数据服务 • 引擎无关 • Shuffle + Spilled data https://github.com/apache/incubator-celeborn • 570+ Commits • 29 Contributors • 300+ Stars
4 .Outline 快 • 核心设计 • AQE • 列式shuffle • 多层存储 稳 • 原地升级 • 拥塞控制 • 负载均衡 弹性 • spark on k8s + celeborn方案 • Evaluation
5 .核心设计 Push Shuffle + Partition数据聚合 Partition切分 • 存算分离 • 写放大 • 磁盘随机小IO • 网络高连接小IO
6 . 支持Spark AQE Partition范围读 Partition合并 Join Strategy切换 Skew Join优化 Map范围读 1 Split切分 2 Sort On Read 3 Range Read
7 .列式Shuffle • 行列转换 行列转换: (Int, String, Decimal) • 代码生成 • 解释执行 • 代码生成 • Shuffle Size缩减40%,行列转换开销低于5%
8 .多层存储 • 内存/本地盘/OSS(HDFS) • 可任选1/2/3层配置 • 让数据尽可能存在快存储
9 .Outline 快 • 核心设计 • AQE • 列式shuffle • 多层存储 稳 • 原地升级 • 拥塞控制 • 负载均衡 弹性 • spark on k8s + celeborn方案 • Evaluation
10 .原地升级 • 向前兼容 • 优雅重启
11 .拥塞控制 参考TCP的拥塞控制 • 慢启动 • 拥塞避免 • 拥塞检测 其他实现:Credit Based • Flink Shuffle Read
12 .负载均衡 • 隔离坏盘 • 尽量分配给快盘/大盘 磁盘监控 • 坏盘 • 刷盘速率 • 未来用量
13 .Outline 快 • 核心设计 • AQE • 列式shuffle • 多层存储 稳 • 原地升级 • 拥塞控制 • 负载均衡 弹性 • spark on k8s + celeborn方案 • Evaluation
14 .Spark On ACK架构 开源方案: spark.dynamicAllocation.shuffleTracking.enabled=true 限制:几乎无法释放pod
15 .Outline 快 • 核心设计 • AQE • 列式shuffle • 多层存储 稳 • 原地升级 • 拥塞控制 • 负载均衡 弹性 • spark on k8s + celeborn方案 • Evaluation
16 .典型场景 完全混部 Celeborn独立部署 存算分离 • 提升性能&稳定性 • 提升性能&稳定性 • 提升性能&稳定性 • 计算,数据,临时数据分离 • 源数据和Shuffle数据分离 • 完全弹性 • 部分弹性
17 .Evaluation • 混部场景:大作业稳定性&性能显著提升 • 1000+ Celeborn Worker • 压缩后4PB Shuffle Data
18 .Evaluation • 存算分离场景 • 100台Celeborn Worker • 数万pods,极致弹性 • 性能和稳定性显著提升
19 .Evaluation • 3T TPCDS 20%性能提升
20 . 欢迎共建Celeborn社区! https://github.com/apache/incubator-celeborn
21 .