『字节青训营-4th-大数据』L6:大数据 Shuffle 原理与实践
相关链接
🎶 学员手册:【大数据专场 学习资料二】第四届字节跳动青训营
讲真,这节课大概都听不懂(
Shuffle 概述
MapReduce 概述
Map
三张 gif
Shuffle
本质:通过哈希区别不同类型数据
Reduce
为什么 Shuffle 对性能非常重要
总结
批式计算的发展流程
Shuffle 算子
算子分类与应用
这个例子中,把一个 txt 按行分割,然后统计每个单词的个数
reduceByKey 产生 Shuffle,做的是 A + B 的操作(有很多机器)
最后 collect,返回结果
Spark 中对 Shuffle 的抽象 - 宽依赖、窄依赖
Shuffle Dependency
Shuffle 过程
Hash Shuffle
写数据
写数据优化
把每个 Partition 映射到某个文件的片段
Sort Shuffle
写数据
每个 task 只用一个文件存储真实数据
读数据
Shuffle 过程的触发流程
前 5 行只是记录计算过程,在 Collect 的时候才会进行计算
Shuffle Handle 的创建
Shuttle Handed 与 Shuffle Writer 的对应关系
Writer 实现
BypassMergeShuffleWriter
仅适用于Partition较少的情况
UnsafeShuffleWriter
SortShuffleWriter
Reader 实现
网络时序图
ShuffleBlockFetchIterator
External Shuffle Service
Shuffle 优化使用的技术
Zero Copy
Natty Zero Copy
常见问题
Shuffle 优化
Shuffle 参数优化
Shuffle 倾斜优化
案例 - 参数优化
Push Shuffle
上面讲的是 Spark 3.0 的算法
为什么要 Push Shuffle
Push Shuffle 的实现
Magnet 实现原理
Magnet 可靠性
Cloud Shuffle Service 思想
Cloud Shuffle Service 架构
Cloud Shuffle Service 写入读取
实践案例 - CSS 优化
总结
评论
GiscusTwikoo