hadoop3.x MapReduce执行流程-mapper部分

执行流程

将要处理的文件,逻辑划分为多个 split 文件,通过 LineRecordReader 按行读取内容给 map()(自定义)

读取文件

通过 FileInputFormat 读取文件

FileInputFormat 是抽象类,默认使用 TextInputFormat

步骤如下:

  • 划分切片
  • 读取文件

划分切片

通过 FileInputFormat 类的 getSplits() 方法对目录中文件进行 逻辑划分,划分几个 切片(split) 就会启动 几个 map task

默认 切片大小(split size) = block size(hdfs中默认128MB)

读取文件

逻辑划分后,调用 RecordReader 进行读取

RecordReader 是抽象类,默认使用 LineRecordReader

按行读取文件,每读取一行,返回一个 <key,value>

  • key:每行首字符偏移量
  • value:这一行的内容

调用 map() 方法

每读取一行,返回一个 <key,value>,调用一次 map() 方法(自定义的 Mapper 类)


原文出处:/show_1IX2BRpJNEuc.html