Hadoop 无法将化简器设置为 1 >



我正在使用Hadoop进行大学作业,我的代码可以工作,但是我遇到了一个小问题。

我正在尝试将化简器的数量设置为 19(这是文档建议的 0.95 * 容量(。但是,当我在任务跟踪器中查看我的工作时,它总共显示 1 个减速器。

System.err.println("here");
job.setNumReduceTasks(19);
System.err.println(job.getNumReduceTasks());

产量符合预期:

here
19

但是在最终输出中,我得到:

12/05/16 11:10:54 INFO mapred.JobClient:     Data-local map tasks=111
12/05/16 11:10:54 INFO mapred.JobClient:     Rack-local map tasks=58
12/05/16 11:10:54 INFO mapred.JobClient:     Launched map tasks=169
12/05/16 11:10:54 INFO mapred.JobClient:     Launched reduce tasks=1

我覆盖的mapreduce部分是:

  • 映射
  • 还原剂
  • 分区程序
  • 分组比较器。

我的第一个想法是分区程序为每个键返回相同的值。我检查了一下,事实并非如此。

我还检查了石斑鱼是否正常工作。

我不确定还有什么可能导致这种情况。如果有人能帮忙,将不胜感激。

我是一个非常反Java的人,所以如果可以的话,请尝试使用非常明确的例子。

PS:我没有设置这个集群,它是由大学设置的,所以我不确定任何配置变量。PS:有太多的代码要发布,所以请让我知道您特别想看到的任何代码。

编辑:TejasP问了我以下问题:

你真的在Hadoop上运行代码还是在本地模式下运行代码?(见 如果您的作业显示在作业跟踪器和任务跟踪器上(。

是的,我是,它可以在工作跟踪器UI中查看。这也报告了 1 个减速器。以及拥有注意:这会在设置中将减速器列为 1.xml

您是否在环境中导出了 HADOOP 变量?

是的,它们在 env 中可见,在我设置它们之前代码不会编译。

env | grep HADOOP
HADOOP_HOME=/mnt/biginsights/opt/ibm/biginsights/IHC
HADOOP_CONF_DIR=/mnt/biginsights/opt/ibm/biginsights/hadoop-conf

群集是单节点还是多节点? AND 即使群集由多个节点组成,所有节点是否都正常运行?其他节点有问题吗?

是的,

有多个节点 (10( 作业跟踪器报告:

Nodes: 10
Map Task Capacity: 20
Reduce Task Capacity: 20
Blacklisted Nodes: 0

你是否正确使用了setNumReduceTasks? 如上所述,我已经调用了 set,然后获取并取回了它应该是 (19( 的值,但最终代码仍然只使用了 1。

您可以通过删除细节将代码简化为一个小的map-reduce代码(仅用于调试(。运行它。看看会发生什么。面对同样的问题,请在原始问题中提供减少的代码。

我将尝试再次编辑结果

看起来您正在 LocalJobRunner 模式下运行它(最有可能来自 eclipse(。在此模式下,如果减少任务的数量> 1,则会将该数字重置为 1。看看LocalJobRunner的以下几行.java

int numReduceTasks = job.getNumReduceTasks();
if (numReduceTasks > 1 || numReduceTasks < 0) {
      // we only allow 0 or 1 reducer in local mode
      numReduceTasks = 1;
      job.setNumReduceTasks(1);
}

您需要考虑的几点:

  1. 你真的在Hadoop上运行代码还是在本地模式下运行代码?(查看您的作业是否在作业跟踪器和任务跟踪器上显示(
  2. 您是否在环境中导出了 HADOOP 变量?
  3. 群集是单节点还是多节点?
  4. 即使群集由多个节点组成,是否所有节点都正常运行?其他节点有问题吗?
  5. 你是否正确使用了setNumReduceTasks?您可以通过删除详细信息将代码简化为一个小的map-reduce代码(仅用于调试(。运行它。看看会发生什么。面对同样的问题,请在原始问题中提供减少的代码。

相关内容

  • 没有找到相关文章

最新更新