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