回顾
1.MapReduce
input>map>shuffle>reduce>output
2.wordcount
输入input <keyvalue>
map处理
shuffle >默认内存 100M
当内存不够的时候回触发溢写操作,本地磁盘
每个map task 都有一个内存缓冲区,存储map输出的结果
spill
partition
sort > MapReduce框架默认是按照key进行排序的
merge合并溢写文件
典型的归并排序方式
reduce开启线程到对应的map上去copy数据>reduce输入
group分组,将相同key的value放在一起
<hadoop,list(1,1,1)>
=======================================================================================================================
MapReduce优化combine
1.combine可以理解为是在map端的reduce操作
2.combine是作为一个优化手段,可选项,不是所有的MapReduce程序都适合combine
3.combine的优化是一定不能够改变最终的输出结果
4.好处:
减少网络的传输
减轻磁盘的IO负载
5.适合的场景:比如求最大值,求和,,,不适合求中间值
6.combine是对一个map的,而reduce是对多个map进行合并