用户编写的程序分成三个部分:Mapper、Reducer和Driver。
1.MapReduce编程规范
1.1.Mapper阶段
(1)用户定义的Mapper要继承自己的父类;
(2)Mapper的输入数据时KV对的形式(kv的类型可自己定义);
(3)Mapper中的业务逻辑写在map()方法中;
(4)Mapper的输出数据时KV对的形式(kv的类型可自己定义)
(5)map()方法(Map Task进程)对每一个<k,v>调用一次
1.2.Reduce阶段
(1)用户定义的Reduce要继承自己的父类;
(2)Reduce的输入数据类型对应Mapper的输出数据类型,也是KV
(3)Reduce中的业务逻辑写在reduce()方法中;
(4)ReduceTask进程对每一组k的<k,v>组调用一次reduce()方法;
1.3.Driver阶段
相当于Yarn集群的客户端,用于提交我们整个程序到YARN集群,调教的是封装了MapReduce程序相关运行程序的job对象;