我的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/