我想有更多的Map任务,以增加并行的 Mahout seqdirectory
工作。但每次我尝试,它只创建一个Map任务。
hadoop版本:1.2.1
mahout版本:0.8/0.9(已测试,两个版本都不适用于更多Map任务)
场景:许多小文件(大约566114个kb的文件)存储在hdfs中
在遇到这个问题(总是一个map任务)之前,我遇到了另一个问题(超出了gc开销限制)。因此,我设置了更多的内存来解决它。
当我发现只有一个map任务正在生成时,我配置了hadoop配置文件( mapred-site.xml
, hadoop-env.sh
...). 我准备好了 mapred.map.tasks
至 20
在 mapred-site.xml
. 这没用。
我发现,map任务的数量是由块的数量决定的。在我的例子中,文件的总大小超过500MB(比默认的块大小64MB大)。我深入研究了mahout源代码(v0.9)。我没有找到任何解决办法。
另外,由于我怀疑问题可能是因为小文件,所以我创建了两个大文件(2500 mb文件),并使用 seqdirectory
命令。但是,仍然只有一个map任务启动。
我不知道怎么解决这个问题。有hadoop和mahout知识的人能帮我吗?
注意,我发现有人参与了这个项目。注意,作为mahout-833,我正在跟踪mahout 0.9源代码中的sequencefilefromdirectory.java,请尝试找出原因。
这是我的配置信息:作业配置文件,hadoop配置文件(mapred-site.xml,hadoop env.sh)
暂无答案!
目前还没有任何答案,快来回答吧!