我正在运行一个Hadoop流作业,它只有映射器,没有reducers。我给这个工作4个输入文件,这都是goes,以确保每个输入文件到一个映射器。两个gzipped压缩的输入文件的大小小于64MB,而另外两个gzipped压缩的输入文件的大小大于64MB。作业长时间运行近40分钟,然后失败,并显示“错误:失败的映射任务数超过允许的限制”。正常情况下,作业应该不会超过1分钟,不确定为什么会持续40分钟
当我检查输出目录时,我看到输出是为两个大小小于64MB的gzipped压缩输入文件生成的,而不是为大小>64MB的gzipped压缩输入文件生成的。
有没有人见过这样的行为?
当作业启动时,我看到以下消息(如果我将较小的文件(< 64 MB)作为输入传递给作业,则看不到此消息)
12/02/06 10:39:10信息mapred.FileInputFormat:进程总输入路径:2 12/02/06 10:39:10信息net.NetworkTopology:添加新节点: /10.209.191.0/10.209.191.57:1004 12/02/06 10:39:10信息net.NetworkTopology:添加新节点: /10.209.191.0/10.209.191.50:1004 12/02/06 10:39:10信息net.NetworkTopology:添加新节点:/10.209.186.0/10.209.186.28:1004 12/02/06 10:39:10信息net.NetworkTopology:添加新节点: /10.209.188.0/10.209.188.48:1004 12/02/06 10:39:10信息net.NetworkTopology:添加新节点: /10.209.185.0/10.209.185.50:1004 12/02/06 10:39:10信息net.NetworkTopology:添加新节点: /10.209.188.0/10.209.188.35:1004
发布于 2012-02-06 23:22:18
如果您已经定义了自己的FileInputFormat派生程序,那么我怀疑您遇到了这个错误:https://issues.apache.org/jira/browse/MAPREDUCE-2094
如果有,我建议将TextInputFormat中的isSplitable方法的实现复制到您自己的类中。
https://stackoverflow.com/questions/9159212
复制相似问题