Closed. This question needs details or clarity。它当前不接受答案。












想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。

6年前关闭。



Improve this question




以下是连续的步骤,中间有一些问题。如果我错了,请纠正我,并详细说明。
  • 客户/用户将请求提交给JobTracker。 JobTracker是驻留在名称节点中的软件。
  • JobTracker将作业分为多个子问题,并提供给TaskTracker。 TaskTracker是驻留在数据节点中的软件。 TaskTracker可能会再次执行此操作,从而导致多层树结构。
  • 映射步骤仅在TaskTracker中发生,而不在JobTracker中发生?
  • 进行随机排序。此步骤是在“映射器”步骤还是“还原器”步骤中进行?
  • 将shuffle和sort的输出输入到Reducer步骤中?
  • reducer步骤仅在JobTracker中发生,而不在TaskTracker中发生?
  • Reducer步骤,即JobTracker而不是TaskTracker合并数据并将输出提供给客户端/用户。
  • 仅使用1个reducer来组合结果?

  • 谢谢

    最佳答案



    JobTracker是一个守护程序,可以驻留在namenode之外的其他计算机上。



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



    通常是。 TaskTracker可以单独运行,但肯定需要在某个地方使用datanode来工作。



    Map Task由tasktracker启动



    随机排序过程实际上是在映射阶段和缩减阶段之间。但是它们仅与还原阶段有关。没有reduce阶段,乱序和排序将不会发生。因此,我们可以说-Reducer有3个主要阶段:随机,排序和减少。



    通过随机排序,该框架通过HTTP获取所有映射器的输出的相关分区。 Reducer的输入是映射器的排序输出。



    reduce task 由TaskTracker启动。



    reduce task 是应该在多个节点中并行运行并向HDFS发出结果的任务。您可以从不同的reducer读取最终数据集中的输出数据,并根据需要在MapReduce驱动程序中对其进行组合。



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

    08-28 16:28