
公司真题库2026-07-20
【字节跳动】MapReduce Shuffle 与 Spark Shuffle 原理对比
字节跳动数仓一面真题。两者都是 map 输出分区落盘、reduce 端拉取归并,但 Spark 用 hash 跳过强制排序,并经历 hash/sort/Tungsten 多代演进。
91学AI·6 阅读
共 3 篇文章

字节跳动数仓一面真题。两者都是 map 输出分区落盘、reduce 端拉取归并,但 Spark 用 hash 跳过强制排序,并经历 hash/sort/Tungsten 多代演进。

考察对 map 端预聚合(combine)的理解:reduceByKey 在 shuffle 前做本地聚合削减数据量,groupByKey 全量搬运,网络 IO 和内存压力差异可达数量级,以及 groupByKey 不可替换的场景。

考察对 Spark shuffle 机制演进的理解:HashShuffle 的小文件问题、SortShuffleManager 的排序与归并、unsafe/sort 分支的选择条件,以及 Tungsten 的二进制排序和堆外内存优化。