当前位置: 首页 > 知识库问答 >
问题:

洗牌和排序阶段是map的一部分还是减少阶段?

阎雪峰
2023-03-14

我的理解是,在mapreduce编程模型中,我们有映射和减少是两个阶段。完成映射阶段后,将生成中间值(键、值),并将其传递给化简器。

我的怀疑是,在map()阶段之后,洗牌和排序将到来。所以,我觉得洗牌和排序是还原阶段的一部分,是真的吗?

如果是这样的话,组合器()是如何工作的?

共有1个答案

谭池暝
2023-03-14

事实上,map/duce有三个阶段:

  1. 地图
  2. 洗牌

洗牌

组合器是一个可选阶段,可以在reduce阶段之前使用,以对map阶段的输出进行求和,因此reduce阶段的工作量较少。点击此处查看更多信息:http://www . tutorialspoint . com/map _ reduce/map _ reduce _ combiners . htm

另请参见map/reduce架构概述:https://developer . Yahoo . com/Hadoop/tutorial/module 4 . html # data flow

 类似资料:
  • 在Map Reduce编程中,Reduce阶段包含了shuffling、sorting和Reduce三个子部分。分拣是一件代价高昂的事情。 Map Reduce编程中reducer中的洗牌和排序阶段的目的是什么?

  • 我正在使用单个节点hadoop作业做一些数据准备。我的作业中的映射器/组合器输出许多键(超过5M或6M),显然作业进行得很慢,甚至失败。映射阶段最多运行120个mapper并且只有一个reducer(这些是自动确定的,我没有为它们设置任何值)。我想优化作业,使洗牌/排序阶段更有效地发生。我将增加到300M,但作业失败了,因为它的值大于映射器堆。然后我将设置为-xmx1024m,但它再次失败,因为它

  • 它是否执行map1,然后按键分区,并将中间数据保存在磁盘(内存)上? 然后读取中间文件2次,一次用于map2 map3分支,第二次用于map4 map5,而不再次计算rddB,即使我们没有在rddB上执行隐式缓存?

  • 我有一个Gradle任务,简单地将文件从一个文件夹复制到另一个文件夹。 当在配置阶段调用copy'from''into'方法时,它可以工作,但当在执行阶段调用它们时,它就不工作了。 这样做是有效的 gradle copyServerConfig 如果我把它放在doFirst{}块中,也会发生同样的事情。 我不明白的另一件事是: gradle task1 但如果我改成这样: gradle task1

  • 是否有一种算法,在给定一个未加权有向无环图的情况下,将所有节点排序到一组节点列表中,从而 保留拓扑顺序(即,对于所有边

  • 本文向大家介绍什么是测试阶段?相关面试题,主要包含被问及什么是测试阶段?时的应答技巧和注意事项,需要的朋友参考一下 ①单元测试(组件测试) ②集成测试 :自顶向下集成测试 、 自底向上集成测试 集成策略:广度优先、深度优先 ③系统测试 ④验收测试