My Github
摘要: 在第四篇博文《初识MapReduce》中,我们认识了MapReduce的八大步骤,其中在Map阶段总共五个步骤。其中,step1.3就是一个分区操作。通过前面的学习我们知道Mapper最终处理的键值对,是需要送到Reducer去合并的,合并的时候,有相同key的键/值对会送到同一个Reducer节点中进行归并。哪个key到哪个Reducer的分配过程,是由Partitioner规定的。在一些集群应用中,例如分布式缓存集群中,缓存的数据大多都是靠哈希函数来进行数据的均匀分布的,在Hadoop中也不例外。MapReduce的使用者通常会指定Reduce任务和Reduce任务输出文件的数量(R)。 阅读全文
posted @ 2015-02-23 00:32 EdisonZhou 阅读(13005) 评论(5) 推荐(6) 编辑
摘要: 在第四篇博文《初识MapReduce》中,我们认识了MapReduce的八大步骤,其中在Map阶段总共五个步骤。我们可以发现,其中有两个计数器:Combine output records和Combine input records,他们的计数都是0,这是因为我们在代码中没有进行Map阶段的规约操作。在MapReduce编程模型中,在Mapper和Reducer之间有一个非常重要的组件,它解决了上述的性能瓶颈问题,它就是Combiner。 阅读全文
posted @ 2015-02-23 00:29 EdisonZhou 阅读(14727) 评论(2) 推荐(10) 编辑