Map Reduce概述
1、InputFormat
1)默认的是TextInputformat kv key偏移量,v :一行内容
2)处理小文件CombineTextInputFormat 把多个文件合并到一起统一切片
2、Mapper
setup()初始化; map()用户的业务逻辑; clearup() 关闭资源;
3、分区
默认分区HashPartitioner ,默认按照key的hash值%numreducetask个数
自定义分区
4、排序
1)部分排序 每个输出的文件内部有序。
2)全排序: 一个reduce ,对所有数据大排序。
3)二次排序: 自定义排序范畴, 实现 writableCompare接口, 重写compareTo方法
总流量倒序 按照上行流量 正序
5、Combiner
前提:不影响最终的业务逻辑(求和 没问题 求平均值)
提前聚合map => 解决数据倾斜的一个方法
6、Reducer
用户的业务逻辑;
setup()初始化;reduce()用户的业务逻辑; clearup() 关闭资源;
7、OutputFormat
1)默认TextOutputFormat 按行输出到文件
2)自定义