Reducer和mappers可以在同一个数据节点上吗?

时间:2013-12-30 05:38:36

标签: hadoop mapper reducers

我已经开始阅读有关大数据和Hadoop的内容了,所以这个问题听起来可能非常愚蠢。

这就是我所知道的。

每个映射器处理少量数据并生成中间输出。 在此之后,我们有了洗牌和排序的步骤。

现在,Shuffle =将中间输出移动到各自的Reducers,每个Reducers处理特定的键/键。

那么,一个数据节点是否可以在其中运行Mapper和Reducer代码,或者每个数据节点都有不同的DN?

2 个答案:

答案 0 :(得分:7)

  1. 术语:数据节点用于HDFS(存储)。 Mappers和Reducers(compute)在具有TaskTracker守护程序的节点上运行。

  2. 每个任务跟踪器的映射器和减少器的数量由配置控制: mapred.tasktracker.map.tasks.maximum 和 mapred.tasktracker.reduce.tasks.maximum

  3. 在理论上,受其他配置中的其他限制的约束,只要tasktracker没有最大数量的map或reduce任务,就可以通过jobtracker为其分配更多map或reduce任务。通常,jobtracker将尝试分配任务以减少数据移动量。

    所以,是的,您可以同时在同一节点上运行映射器和缩减器。

答案 1 :(得分:3)

您可以在同一节点上运行映射器和Reducer。例如,考虑单个节点hadoop集群。在单个节点hadoop集群中,整个HDFS存储(数据节点,名称节点)以及作业跟踪器和任务跟踪器都在同一节点上运行。

在这种情况下,映射器和Reducer都在同一节点上运行。