我试图在Elastic MapReduce(EMR)上用自定义JAR运行一个作业。我试图在一个目录中处理大约1000个文件。当我使用参数s3n://bucketname/compressed/*.xml.gz
提交作业时,出现“匹配的0个文件”错误。如果我只传递文件的绝对路径(例如s3n://bucketname/compressed/00001.xml.gz
),它运行良好,但只处理一个文件。我尝试使用目录名称(s3n://bucketname/compressed/
),希望内部的文件将被处理,但只是将目录传递给作业。在Elastic MapReduce上输入多个文件
同时,我有一个较小的本地hadoop安装。在那里,当我通过我的作业通配符(/path/to/dir/on/hdfs/*.xml.gz
),它工作正常,所有1000个文件都正确列出。
如何让EMR列出我的所有文件?
或者,我如何从代码中列出s3目录中的文件?然后我可以从这些文件中生成路径。 –
它现在有效!在同一个桶中有一个名为“compressed”的空文件。一旦我删除了空文件,程序就开始工作。 –