【发布时间】:2015-07-08 07:17:42
【问题描述】:
我在某个网站上找到了以下问题,但我不确定正确答案。
MapReduce 程序中的哪个 Hadoop 服务会产生新的 Mapper?
-
JobTracker生成一个新的Mapper来处理单个文件中的所有记录。 -
TaskTracker生成一个新的Mapper来处理每个键值对。 -
TaskTracker产生一个新的Mapper来处理单个输入拆分中的所有记录。 -
JobTracker调用TaskTracker的configure ()方法,然后调用它的map ()方法,最后调用它的close ()方法。
网站说答案是选项 2,但我对答案 3 感到困惑。
在 mapper 的 java 文档中,我发现了以下内容:
Hadoop Map-Reduce 框架为
InputFormat为作业生成的每个InputSplit生成一个映射任务。Mapper实现可以通过theJobContext.getConfiguration()访问作业的配置。
框架首先调用setup(org.apache.hadoop.mapreduce.Mapper.Context),然后为InputSplit中的每个键/值对调用map(Object, Object, Context)。最后cleanup(Context)被调用。 与给定输出键关联的所有中间值随后由框架分组,并传递给Reducer以确定最终输出。用户可以通过指定两个keyRawComparator类来控制排序和分组。
【问题讨论】:
-
我实际上发现了不同问题的相同答案。问题是哪个过程描述了 Mapper 的生命周期?在这种情况下,答案是否仍然是选项 3?谢谢!
-
@Ashrith 你能看一下吗?
标签: hadoop