前言:小编引入的图片和文字描述都是来自于传智播客的视频讲解,在此感谢传智播客的老师 MapReduce的开发一共有八个步骤: Map阶段分为两个步骤、shuffle阶段分为四个步骤、Resuce阶段分为两个步骤 Map 阶段 2 个步骤
- 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步
- 自定义 Map 逻辑, 将第一步的结果转换成另外的 Key-Value(K2和V2) 对, 输出结果
Shule 阶段 4 个步骤 - 对输出的 Key-Value 对进行分区(K2和V2)
- 对不同分区的数据按照相同的 Key 排序
- (可选) 对分组过的数据初步规约, 降低数据的网络拷贝
- 对数据进行分组, 相同 Key 的 Value 放入一个集合中,生成新的K2和V2
Reduce 阶段 2 个步骤 - 对多个 Map 任务的结果进行排序以及合并, 编写 Reduce 函数实现自己的逻辑, 对输入的
Key-Value 进行处理(新K2和V2), 转为 Key-Value(K3和V3)输出 - 设置 OutputFormat 处理并保存 Reduce 输出的 Key-Value 数据
具体细节
- K1和V1中的K,是文本数据的偏移量:第一个K是0,第二个是第一个K对应的V的值的字符个数的偏移量,因此第二个是K是11,以此类推第三个K是21
|