第4章 第三幕:汇流


文档摘要

第 4 章 · 第三幕:汇流 章节摘要:汇流是三幕剧的高潮:Map 端已排序分区的输出,经 Shuffle 跨越网络流向各 Reduce 任务,归并成"按键分组"的流,交给归约函数,最终写出。本章先以六步分解透视 Shuffle 全过程,再依次拆解 Partition、Reduce 与 Output、以及作为结构基础的排序与分组比较器——二次排序等高级模式全部建立在这块地基上。 学习目标 阅读完本章,你应当能够: 按顺序复述 Shuffle 的六个步骤,并区分哪些发生在 Map 端、哪些在 Reduce 端; 手推一个键经过 HashPartitioner 后落在哪个 Reduce 任务; 解释排序为何是分组与 Join 的结构基础;

第 4 章 · 第三幕:汇流

章节摘要:汇流是三幕剧的高潮:Map 端已排序分区的输出,经 Shuffle 跨越网络流向各 Reduce 任务,归并成"按键分组"的流,交给归约函数,最终写出。本章先以六步分解透视 Shuffle 全过程,再依次拆解 Partition、Reduce 与 Output、以及作为结构基础的排序与分组比较器——二次排序等高级模式全部建立在这块地基上。

学习目标

阅读完本章,你应当能够:

  1. 按顺序复述 Shuffle 的六个步骤,并区分哪些发生在 Map 端、哪些在 Reduce 端;
  2. 手推一个键经过 HashPartitioner 后落在哪个 Reduce 任务;
  3. 解释排序为何是分组与 Join 的结构基础;
  4. 写出二次排序所需的复合键与 GroupingComparator 配置;
  5. 说清 Reduce 任务的拷贝、归并与写出的节奏和对应参数。

核心概念速览

图 4-1 汇流一幕的六个节拍

前三拍在 Map 端完成,后三拍在 Reduce 端接力——"Shuffle"一词横跨两岸,指的是整段数据迁徙。

子章节导航

4.1 Shuffle 六步分解

以透视视角逐步拆解环形缓冲、溢写、分段归并、拷贝、归并排序、分组六步,附每步的参数与调优点,是全书的枢纽一节。

4.2 Partition 分区

分区函数决定每个键的去向;默认哈希取模的推导、倾斜的成因、自定义分区的三种典型写法(业务键打散、哈希加盐、总控均衡)。

4.3 Reduce 与 Output

Reduce 任务的启动时机与拷贝参数、归并的流数控制、reduce 函数的调用契约,以及 OutputFormat 与输出提交协议如何避免两次写出。

4.4 排序与分组比较器

排序的三种层次(全排序、区内排序、二次排序)、复合键设计、SortComparator 与 GroupingComparator 的分工——理解了它们,Join 与 TopN 模式就是自然推论。

子章节之间的逻辑关系

一句话论点:4.1 是全局时间线,4.2 回答"谁去哪儿",4.3 回答"到了以后怎么办",4.4 揭示"为什么要排好序才分组"。

Map 输出 已排序已分区 │ ▼ 4.1 六步时间线 总览 ├─► 4.2 分区 数据归属 ├─► 4.3 拷贝归并与写出 收尾 └─► 4.4 排序与分组 结构地基 │ ▼ 第 6 章 直接在此地基上解经典计算题

前置知识与后续延伸

  • 前置:第 3 章的环形缓冲与溢写(本将其纳入六步的前两步统一编号)。
  • 为后续铺垫:倾斜对策在 6.2 Join 实战回收;二次排序直接支撑 6.3 的 TopN 与分组取最大;本章的参数名将在 6.4 调优清单集中出现。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U