关于MapReduce编程环境的整体功能视图,我有一些不太清楚的地方。
考虑从一个(或多个)映射器中输出形式为(word,1)的1k个随机未排序单词。假设使用reducer,我想将它们都保存在一个巨大的排序文件中。它是如何工作的?我的意思是,归约器本身会自动对所有单词进行排序?reducer函数应该做什么?如果我只有一个内存和磁盘有限的减速器怎么办?
发布于 2018-11-10 07:03:14
当reducer获得数据时,数据已经在映射端进行了排序。
过程是这样的
Map侧:
减少侧:
1. 1.Reduce将从不同的map任务接收数据,并且从每个map发送的数据量是有序的。如果reduce端接受的数据量非常小,则将其直接存储在内存中。如果数据量超过缓冲区大小的特定比例,数据将被合并并写入磁盘。
https://stackoverflow.com/questions/53214246
复制