MapReduce

MapReduce是运行在yarn集群上的 主要分resourcemanger和nodemanger两类
一个完整的MapReduce程序分为三个部分
MRAppMaster 负责整个程序的过程调度及状态协调
MapTesk 负责map阶段的整个数据处理流程
ReduceTesk 负责reduce阶段的整个数据处理流程

MapReduce开发的八个步骤:

Map 阶段 2 个步骤
1. 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步
2. 自定义 Map 逻辑, 将第一步的结果转换成另外的 Key-Value(K2和V2) 对, 输出结果
Shuffle 阶段 4 个步骤
3. 对输出的 Key-Value 对进行分区
4. 对不同分区的数据按照相同的 Key 排序
5. (可选) 对分组过的数据初步规约, 降低数据的网络拷贝
6. 对数据进行分组, 相同 Key 的 Value 放入一个集合中
Reduce 阶段 2 个步骤
7. 对多个 Map 任务的结果进行排序以及合并, 编写 Reduce 函数实现自己的逻辑, 对输入的Key-Value 进行处理, 转为新的 Key- Value(K3和V3)输出
8. 设置 OutputFormat 处理并保存 Reduce 输出的 Key-Value 数据


原文地址:https://www.cnblogs.com/BaiChunLong/p/11647663.html