一、MapReduce常用数据序列化类型
Java类型 | Hadoop Writable类型 |
---|---|
boolean | BooleanWritable |
byte | ByteWritable |
int | IntWritable |
float | FloatWritable |
long | LongWritable |
double | DoubleWritable |
String | Text |
map | MapWritable |
array | ArrayWritable |
二、MapReduce编程规范
一般用户编写的程序分为三个部分:Mapper
,Reducer
和Driver
-
Mapper
阶段(1)用户自定义的
Mapper
要继承自己的父类(2)
Mapper
的输入数据是<K,V>
对的形式(<K,V>
类型可自定义)(3)
Mapper
中的业务逻辑写在map()
方法中(4)
Mapper
的输出数据是<K,V>
对的形式(<K,V>
类型可自定义)(5)
map()
方法(MapTask
进程)对每一个<K,V>
调用一次 -
Reducer
阶段(1)用户自定义的
Reducer
要继承自己的父类(2)
Reducer
的输入数据类型对应Mapper
的输出数据类型,也是<K,V>
(3)
Reducer
的业务逻辑写在reduce()
方法中(4)
ReduceTask
进程对每一组相同k的<K,V>
组调用一次reduce()
方法 -
Driver
阶段相当于
YARN
集群的客户端,用于提交我们整个程序到YARN
集群,提交的是封装了MapReduce
程序相关运行参数的job
对象