以下是序列中的步骤,两者之间存在问题。如果我错了,请纠正我,并详细说明一下。
由于
答案 0 :(得分:1)
客户端/用户将请求提交给JobTracker。 JobTracker是一个驻留在名称节点中的软件。
JobTracker是一个守护程序,可以驻留在namenode以外的单独机器中。
JobTracker将作业分成小的子问题并提供给TaskTracker。
JobTracker将MapReduce任务分配到群集中的特定节点,理想情况下是具有数据的节点,或者至少位于同一机架中的节点。
TaskTracker是驻留在数据节点中的软件。 TaskTracker可能会再次执行此操作,从而导致多级树结构。
通常是的。 TaskTracker可以单独运行,但它肯定需要一个datanode才能在某个地方使用。
映射步骤仅在TaskTracker中发生,而不在JobTracker中发生?
地图任务由tasktracker
启动进行随机排序。此步骤是在Mapper步骤还是Reducer步骤中进行的?
随机和排序过程实际上是在地图阶段和减少阶段之间。但它们仅与减少阶段相关。没有减少阶段的洗牌和排序将不会发生。所以,我们可以说 - Reducer有3个主要阶段:shuffle,sort和reduce。
shuffle和sort的输出被送入Reducer步骤?
在shuffle和sort中,框架通过HTTP获取所有映射器的输出的相关分区。 Reducer的输入是映射器的排序输出。
reducer步骤仅在JobTracker中发生,而不在TaskTracker中发生?
TaskTracker启动了减少任务。
Reducer步骤,即JobTracker,而不是TaskTracker组合数据并将输出提供给客户端/用户。
减少任务应该在几个节点中并行运行并将结果发送到HDFS。您可以从不同的Reducer中读取最终数据集中的输出数据,并根据需要将它们组合在MapReduce驱动程序中。
只使用1个reducer来组合结果?
这取决于你想做什么。但是如果要在单个reduce任务中处理大量数据,那么单个reduce任务肯定会因缺乏并行性而降低性能。
答案 1 :(得分:0)
确实你需要这个:Hadoop: The Definitive Guide, 3rd Edition.关于这个主题的最有用的指南。
一些注意事项:
希望得到这个帮助。