知识卡片

Shuffle是成本中心

普通读书笔记卡 · 1776.a

内容

批处理任务的真正代价常在 Shuffle:中间结果落盘、跨网络传输、排序和聚合都会放大延迟。优化 MapReduce 不能只看计算函数,还要减少键倾斜和无谓数据移动。

参考来源

- 位置:《大数据日知录:架构与算法》第11章《大规模批处理系统》"11.1 MapReduce"及"11.2.1 求和模式"一节(源文件:_epub-src/OEBPS/text00016.html) - 结论依据:原文明确"一次应用任务执行过程中,MapReduce计算模型存在多处的磁盘读/写及网络传输过程。比如初始的数据块读取、Map任务的中间结果输出到本地磁盘、Shuffle阶段网络传输、Reduce阶段的磁盘读及GFS写入",并说明Partitioner设计不当"可能会导致数据分布倾斜(Skewed),即有些Reducer需要处理大量的信息",Combiner可"极大地减少Shuffle阶段的网络传输量"。 - 原始内容:MapReduce计算模型存在多处的磁盘读/写及网络传输过程。比如初始的数据块读取、Map任务的中间结果输出到本地磁盘、Shuffle阶段网络传输、Reduce阶段的磁盘读及GFS写入等……如果使用Combiner会极大地减少Shuffle(拖曳)阶段的网络传输量……一般的策略是对Reducer个数哈希取模,但是这可能会导致数据分布倾斜(Skewed),即有些Reducer需要处理大量的信息。