Amazon Elastic MapReduce 上的多个文件作为输入
我正在尝试使用自定义 jar 在 Elastic MapReduce (EMR) 上运行作业。我正在尝试处理单个目录中的大约 1000 个文件。当我使用参数 s3n://bucketname/compressed/*.xml.gz
提交作业时,出现“匹配 0 个文件”错误。如果我只传递文件的绝对路径(例如s3n://bucketname/compressed/00001.xml.gz
),它运行正常,但只有一个文件被处理。我尝试使用目录的名称(s3n://bucketname/compressed/
),希望其中的文件能够被处理,但这只是将目录传递给作业。
同时,我有一个较小的本地 hadoop 安装。这样,当我使用通配符 (/path/to/dir/on/hdfs/*.xml.gz
) 传递工作时,它工作正常并且所有 1000 个文件都正确列出。
如何让 EMR 列出我的所有文件?
I'm trying to run a job on Elastic MapReduce (EMR) with a custom jar. I'm trying to process about a 1000 files in a single directory. When I submit my job with the parameter s3n://bucketname/compressed/*.xml.gz
, I get a "matched 0 files" error. If I pass just the absolute path to a file (e.g. s3n://bucketname/compressed/00001.xml.gz
), it runs fine, but only one file gets processed. I tried using the name of the directory (s3n://bucketname/compressed/
), hoping that the files within will be processed, but that just passes the directory to the job.
At the same time, I have a smaller local hadoop installation. In that, when I pass my job with wildcards (/path/to/dir/on/hdfs/*.xml.gz
), it works fine and all 1000 files are listed correctly.
How do I get EMR to list all my files?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道 EMR 如何列出所有文件,但这里有一段对我有用的代码:
它将列出输入目录中的所有文件,您可以对这些文件执行任何您想要的操作
I don't know how EMR lists all the files, but here's a piece of code which works for me:
It will list all the files which are in the input directory, and you can do to those anything that you will