1.WordCount回顾
2.从分片(split)到map阶段
由于NameNode内存限制,HDfs适合存放大文件
对于小文件可采用压缩输入格式CombineFileInputFormat
dfs.block.size可调节块的大小
Map任务数量和mapred.tasks和mapred.min.split.size参数有关。
3.Map->Shuffle->Reduce
本地优化-Combine(本地先按照key先行一轮排序与合并,再进行网络混淆,这个过程就是Combine),通过这个操作 job.setCombinerClass(MyReduce.class)
Combine本质上是在Mapper缓冲区溢写文件的合并
Partition是在Reduce输入之前发生,相同的key值一定会进入同一个Partitioner,Reduce过程会按照key排序
Partitioner,Reducer,输出文件三者数量是相等的
大数据量的情况下,Reducer数量不宜过少,可以通过代码 job.setNumReduceTasks(int n)和文件中apred.reduce.tasks设置数量。