第2章 第一幕:切分


文档摘要

第 2 章 · 第一幕:切分 章节摘要:三幕剧的第一幕在任何计算发生之前就已完成——框架把输入数据规划成若干逻辑分片,每个分片对应一个 Map 任务。本章讲透三件事:分片的机制与大小取舍、数据本地性如何让计算流向数据、压缩如何在存储与 Shuffle 两个环节同时发挥作用。读完你会明白:Map 任务数不是拍脑袋定的,而是被切分策略直接决定的。 学习目标 阅读完本章,你应当能够: 说清"块"与"分片"的区别——一个是物理存储单位,一个是逻辑计算单位; 手算一个给定文件大小与分片尺寸的作业会产生多少 Map 任务; 解释分片默认等于块大小的原因,以及何时应该改小或改大; 描述数据本地性的三个级别与框架的调度取舍; 为中间数据与最终输出选择合适的压缩编码并说明理由。

第 2 章 · 第一幕:切分

章节摘要:三幕剧的第一幕在任何计算发生之前就已完成——框架把输入数据规划成若干逻辑分片,每个分片对应一个 Map 任务。本章讲透三件事:分片的机制与大小取舍、数据本地性如何让计算流向数据、压缩如何在存储与 Shuffle 两个环节同时发挥作用。读完你会明白:Map 任务数不是拍脑袋定的,而是被切分策略直接决定的。

学习目标

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

  1. 说清"块"与"分片"的区别——一个是物理存储单位,一个是逻辑计算单位;
  2. 手算一个给定文件大小与分片尺寸的作业会产生多少 Map 任务;
  3. 解释分片默认等于块大小的原因,以及何时应该改小或改大;
  4. 描述数据本地性的三个级别与框架的调度取舍;
  5. 为中间数据与最终输出选择合适的压缩编码并说明理由。

核心概念速览

图 2-1 第一幕的三个决策点

第一幕的三个决定,分别对应并行度、调度与 IO 成本,全部发生在用户函数执行之前。

子章节导航

2.1 输入分片机制

分片与块的关系、分片大小的计算公式、Map 任务数的推导、小文件问题的成因与 CombineFileInputFormat 等对策。

2.2 数据本地性

"移动计算比移动数据便宜"的量化含义,节点本地、机架本地、跨机架三级本地性,以及调度器如何在等待与迁移之间权衡。

2.3 数据压缩

压缩在 MapReduce 全链路出现的位置:输入侧、中间侧、输出侧;常用编码的压缩比与速度对比,以及可分割压缩与否对分片的影响。

子章节之间的逻辑关系

一句话论点:切多大决定演员数量,在哪跑决定旅途成本,压不压缩决定行李重量——三个决策共同压低第一幕的总开销。

输入数据 块布局 │ ▼ 2.1 切多大 ──► 2.2 在哪跑 ──► 2.3 压不压缩 并行度 调度成本 IO 成本 └──────────┴──────────┘ ▼ 带着角色表进入第 3 章 第二幕 映射

前置知识与后续延伸

  • 前置:第 1 章的三幕结构;HDFS 块与副本的基本概念。
  • 为后续铺垫:分片数即 Map 任务数,直接进入第 3 章 Map 任务的执行机制;本章的压缩编码将在第 4 章 Shuffle 与第 6 章调优中反复回收。

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