2013-12-15 44 views
0

下面是序列中的步骤,并且介于两者之间的问题。请纠正我,如果我错了,详细一点。了解地图/减少过程。有几个问题

  • 客户端/用户将请求提交给JobTracker。 JobTracker是一个驻留在名称节点中的软件。
  • JobTracker将作业分成小的子问题并提供给TaskTracker。 TaskTracker是驻留在数据节点中的软件。 TaskTracker可能会再次执行,导致多级树形结构。
  • 映射步骤仅在TaskTracker中发生,不在JobTracker中?
  • 洗牌和排序发生。此步骤是在Mapper步骤还是Reducer步骤中进行的?
  • 洗牌和排序的输出被送入Reducer步骤?
  • Reducer步骤仅在JobTracker中发生而不在TaskTracker中?
  • 减速步骤即JobTracker不是TaskTracker组合数据并将输出提供给客户/用户。
  • 只有1个减速机用于组合结果?

感谢

+0

这个样式问题真的很难在stackoverflow上回答。此外,几乎每一行都是错误的......所以不确定你从哪里得出这些假设。 –

回答

1

客户端/用户将请求提交给JobTracker。 JobTracker是一个驻留在名称节点中的软件。

JobTracker是一个守护进程,它可以驻留在名称节点以外的其他机器上。

JobTracker将作业分成小的子问题并提供给TaskTracker。

JobTracker将MapReduce任务分配给群集中的特定节点,理想情况下具有该数据的节点或至少位于同一个机架中。

TaskTracker是驻留在数据节点中的软件。 TaskTracker可能会再次执行,导致多级树形结构。

通常是的。 TaskTracker可以独立运行,但它确实需要一个datanode来处理。

映射步骤只发生在JobTracker而不是JobTracker中?

地图任务由TaskTracker共同

洗牌推出和排序发生。此步骤是在Mapper步骤还是Reducer步骤中进行的?

乱序和排序过程实际上是在映射阶段和缩小阶段之间。但它们只与缩小阶段有关。没有减少阶段洗牌和排序不会发生。所以,我们可以说 - Reducer有三个主要阶段:洗牌,分类和减少。

洗牌和排序的输出被送入Reducer步骤?

在洗牌和排序中,框架通过HTTP获取所有映射器输出的相关分区。 Reducer的输入是映射器的排序输出。

减速器步骤只发生在JobTracker而不发生在TaskTracker中吗?

减少任务由TaskTracker启动。

减速器步骤即JobTracker而非TaskTracker组合数据并将输出提供给客户端/用户。

减少任务是应该在几个节点并行运行并将结果发送到HDFS。如果你喜欢,你可以读取来自不同Reducer的最终数据集的输出数据,并将它们结合到MapReduce驱动程序中。

只有1个缩小器用于组合结果?

这取决于你想要做什么。但是,如果您需要在单个reduce任务中处理大量数据,那么由于缺乏并行性,执行单个reduce任务肯定会降低性能。

0

你的确需要这样的:在这个题目Hadoop: The Definitive Guide, 3rd Edition.最有用的指导。

一些注意事项:

  1. Hadoop的主要是2个事物组合:HDFS为 “存储” 和MapReduce框架作为 “CPU”。
  2. NameNode与HDFS相关,JobTracker与MapReduce相关。 MapReduce使用HDFS服务,但JobTracker和NameNode是完全不同的服务,不必位于同一节点上。
  3. DataNode是HDFS实体,但TaskTracker是MapReduce的组件,它们是独立的。实际上,它们通常位于同一个节点上,但它不是固定的。
  4. 作业步骤本身由TaskTracker执行。 JobTracker就像调度程序。这与Map和Reduce步骤都有关系。不要忘记Combiner。
  5. 不,您可以使用多于1个Reducer,并且您可以控制此功能,并且每个映射器最多可以使用1个组合器,因为组合器会在映射器之后立即执行。
  6. 随机过程与映射器(或组合器)输出有关,因此逻辑上它更接近映射器而不是缩减器,但实际上不应该依赖于此。你的自由是采取下一个记录和过程。另外,如果配置了0个reducer,则不会有像shuffle这样的事情。
  7. 不要试图用这样的Q &取代真正的知识一个网站的建议。不起作用:-)。

希望得到这个帮助。