MR的核心思想:
Map阶段和Reduce阶段
将数据分块为键值对,然后对这些键值对进行运算
MR在运行时有三个进程
1、MrAppMaster:负责整个程序的过程调度和状态协调
2、MapTask:负责Map阶段的数据处理流程
3、ReduceTask:负责Reduce阶段的数据处理
MR程序可以分成三个部分
1.Mapper
1)用户自定义的Mapper要继承自己的父类
2)Mapper的输入数据是KV对的形式
3)Mapper中的业务逻辑写在map()方法中
4)Mpaper的输出数据是KV对的形式
5)map()方法对每一个<K,V>调用一次
2.Reducer
1)用户自定义的Reducer要继承自己的父类
2)Reducer的输入数据类型对应Mapper的输出数据类型,也是KV
3)Reducer的业务逻辑写在reduce()方法中
4)ReduceTask进程对每一组相同k的<k,v>组调用一次reduce()方法
3.Driver
相当于YARN集群的客户端,用于提交我们整个程序到YRAN集群,提交的是封装了MapReduce相关运行参数的job对象