Hadoop 作业从多个目录获取输入文件
我遇到的情况是,多个目录中存在多个压缩 gz 格式的文件(100 个以上,每个 2-3 MB)。例如
A1/B1/C1/part-0000.gz
A2/B2/C2/part-0000.gz
A1/B1/C1/part-0001.gz
我必须将所有这些文件输入到一个 Map 作业中。据我所知,为了使用 MultipleFileInputFormat,所有输入文件都需要位于同一目录中。是否可以将多个目录直接传递到作业中?
如果没有,那么是否可以有效地将这些文件放入一个目录而不发生命名冲突,或者将这些文件合并到 1 个压缩的 gz 文件中。
注意:我使用纯 java 来实现 Mapper,而不是使用 Pig 或 hadoop 流。
任何有关上述问题的帮助将不胜感激。
谢谢,
安基特
I have a situation where I have multiple (100+ of 2-3 MB each) files in compressed gz format present in multiple directories. For Example
A1/B1/C1/part-0000.gz
A2/B2/C2/part-0000.gz
A1/B1/C1/part-0001.gz
I have to feed all these files into one Map job. From what I see , for using MultipleFileInputFormat all input files need to be in same directory . Is it possible to pass multiple directories directly into the job?
If not , then is it possible to efficiently put these files into one directory without naming conflict or to merge these files into 1 single compressed gz file.
Note: I am using plain java to implement the Mapper and not using Pig or hadoop streaming.
Any help regarding the above issue will be deeply appreciated.
Thanks,
Ankit
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
FileInputFormat.addInputPaths() 可以采用逗号分隔的多个文件列表,例如
FileInputFormat.addInputPaths() can take a comma separated list of multiple files, like