MapReduce Mapper
hadoop mapper 任务主要负责处理每个输入记录,并生成一个新 键值对,这个 键值对跟输入记录是完成不一样的。mapper 任务的输出数据由这些 键值对组成的集合。在 mapper 任务把数据写到本地磁盘之前,数据会被按 key 进行分区并排序,分区的目的是要把 key 相同的值聚集在一起。
MapReduce 框架为每个 InputSplit(数据分片)生成一个 map 任务,这里的 InputSplit 是由 InputFormat 生成的。
mapper 只会处理键值对形式的数据,所以把数据传给 mapper之前,需要把它转换成 这样的格式。

键值对是怎么生成的
让我们详细的来讨论一下键值对 是怎么生成的。
InputSplit :它是数据的逻辑表示,即数据分片,每个 InputSplit 会被一个 map 任务处理。
RecordReader :它会跟 InputSplit 交互,并把数据转换成适合 mapper 读取的键值对(key-value pair)记录。默认情况下,它用的是 TextInputFormat 类来做转换。RecordReader 与 InputSplit 交互一直到文件读取完成。它会给文件的每一行数
本文详细介绍了Hadoop MapReduce中的Mapper组件,包括键值对的生成、Mapper的工作流程和map任务的数量计算。Mapper主要负责将输入记录转化为键值对,InputSplit和RecordReader在其中起关键作用。Mapper任务的数量通常基于数据的逻辑分片,由InputFormat类决定,最佳并行度在10到100个之间。
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



