java - reducer 数量对集群节点数量的依赖性

标签 java linux hadoop mapreduce reducers

我的hadoop程序使用一个映射器,它将输入数据分成一定数量的部分,该数量在/usr/countcomputers.txt文件中设置(由映射器函数读取)。此外,一部分到达每个 reducer 。因此,在 /usr/countcomputers.txt 文件中设置的数字定义了 reducer 的数量。对此我有一个疑问:reducers仅在启动TaskTracker恶魔的计算机上执行,或者在所有节点上执行,包括在哪些NameNode恶魔上,由JobTracker和Secondary NameNode启动?对我来说,了解这个问题的答案非常重要,因为 /usr/countcomputers.txt 文件中设置的数字取决于它,请在程序中读取。

最佳答案

仅允许任务跟踪器运行 reducer (如果您为属性 mapreduce.tasktracker.reduce.tasks.maximum 配置了大​​于零的数字)。

所以你可以放心地假设只有在运行tasktracker的主机上,才会执行reduce任务。

关于java - reducer 数量对集群节点数量的依赖性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734903/

相关文章:

java - 如何将组件限制在某个位置

java - @OneToMany 通过mappedBy 而不使用@JoinColumns

hadoop - 如何在MapReduce框架中分割输入文件?

linux - 在 Linux 中使用 Bash 列出带空格的目录

Hadoop 基础的 MapReduce 程序中的 java.lang.NoClassDefFoundError

java - 无法在 Java 中连接到 HBase 0.96.1.1-hadoop2 Standalone

java - 从 MS Access 输出获取 Unicode 数据将为 "???????????????????"

java - 安卓自定义通知为空

linux - 如何使用 AWK 来唯一化一个表(为每个唯一 ID 保留最大值)?

c - 具有共享内存的进程异常终止的行为