Mahout seqdirectory mapreduce只获得一个地图任务

时间:2014-07-04 18:59:04

标签: hadoop configuration mapreduce mahout

我希望有更多的地图任务来增加Mahout seqdirectory工作的并行性。但每次我尝试时,它只创建一个地图任务。

  • Hadoop版本:1.2.1
  • Mahout版本:0.8 / 0.9(已测试,两者均不适用于更多地图任务)
  • 场景:许多小文件(约566114个少量KB文件)存储在HDFS中

在遇到此问题(总是一个地图任务)之前,我遇到了另一个问题(超出了GC开销限制)。因此我设置了更多的记忆来解决它。

当我发现只生成了一个map任务时,我配置了Hadoop配置文件(mapred-site.xmlhadoop-env.sh ...)。我在mapred.map.tasks中将20设置为mapred-site.xml。这没有用。

我发现,地图任务的数量取决于块的数量。在我的例子中,文件的总大小超过500 MB(大于64 MB的默认块大小)。我挖到了Mahout源代码(v0.9)。我找不到任何解决方案。

另外,由于我怀疑,问题可能是因为文件很小,我创建了两个大文件(2 500 MB文件),并使用seqdirectory命令将它们加载到HDFS中。但是,仍然只启动了一个地图任务。

我不知道,如何解决这个问题。知道Hadoop和Mahout的人可以帮助我吗?

注意,我发现有人为这个pb做出了贡献。注意作为mahout-833 我正在从Mahout 0.9源代码中跟踪SequenceFileFromDirectory.java,试图找出原因。

以下是我的配置信息:job config file, hadoop config file(mapred-site.xml, hadoop-env.sh)

0 个答案:

没有答案