我知道Map是如何工作的,我有哪些步骤:
Map
洗牌和排序
减少
当然,我有分区,合并器,但现在这并不重要。
有趣的是,当我运行map reduce作业时,看起来Map器和还原器是并行工作的:
所以我不明白这怎么可能。
问题1。如果有多个节点正在执行Map操作,那么reducer如何开始工作?因为没有分类减速机就不能工作,对吗(必须为reducer对输入进行排序-如果Map器仍在工作,则无法对输入进行排序)。
问题2。如果我有多个缩减器,最终的数据将如何合并在一起?也就是说,最终的结果应该排序对吗?这意味着我们要花费额外的o(n*logn)时间来合并“多个结果?”
1条答案
按热度按时间s3fp2yjn1#
还原程序可以在Map器的结果可用时立即开始复制这些结果。它被称为reduce任务的复制阶段(参见hadoop最终指南,第7章mapreduce如何工作)。
从这里开始:
…复制完所有Map输出后,reduce任务将进入排序阶段(由于排序是在Map端执行的,因此应正确地称为合并阶段),这将合并Map输出,并保持其排序顺序。这是一轮一轮的。。。