2012-02-06 63 views
0

我正在运行一个Hadoop流作业,它只有映射器,没有减速器。我给这份工作4个输入文件,这些输入文件都是经过gzip压缩的,以确保每个输入文件都映射到一个映射器。两个gzip的输入文件的大小小于64 MB,而另外两个gzip的输入文件的大小大于64MB。作业长时间运行将近40分钟,然后失败地显示“错误:失败的地图任务数量超出了允许的限制”。通常作业不应该超过1分钟,不知道为什么它持续40分钟问题与大小> 64 MB的gzip输入文件

当我检查输出目录时,我看到输出是为两个gzipip输入文件生成的,大小为< 64 MB,输出是不是针对大小> 64 MB的gzip输入文件生成的。

有没有人看过这样的行为?

我看到以下消息作业启动时(我没有看到这一点,如果我通过小尺寸文件(< 64 MB)作为输入到作业)

06年12月2日10时39分10秒INFO mapred.FileInputFormat:要输入的总输入路径:2 12/02/06 10:39:10 INFO net.NetworkTopology:添加新节点:/10.209.191.0/10.209.191.57:1004 12/02/06 10: 39:10 INFO net.NetworkTopology:添加一个新节点:/10.209.191.0/10.209.191.50:1004 12/02/06 10:39:10 INFO net.NetworkTopology:添加一个新节点:/10.209.186.0/10.209 .186.28:1004 12/02/06 10:39:10 INFO net.NetworkTopology:添加一个新节点:/10.209.188.0/10.209.188.48:1004 12/02/06 10:39:10 INFO net.NetworkTopology:添加新节点:/10.209.185.0/10.209.185.50:1004 12/02/06 10:39:10 INFO net.NetworkTopology:Adding a new节点:/10.209.188.0/10.209.188.35:1004

回答

0

如果您已经定义了自己FileInputFormat衍生话,我怀疑你遇到了这个错误: https://issues.apache.org/jira/browse/MAPREDUCE-2094

如果你有那么我建议复制执行将TextInputFormat中的isSplitable方法转换为您自己的类。

+0

不,我没有定义我自己的InputFormat。我的程序是用C++编写的,我使用hadoop streaming,它有一个默认的TextInputFormat输入格式。 – sunillp 2012-02-06 17:31:47