Hadoop作业从多个目录中获取输入文件

时间:2011-01-04 11:48:32

标签: file input hadoop


  我有一种情况,我有多个目录中存在压缩gz格式的多个(每个2-3 MB以上)100个文件。例如
A1 / B1 / C1 /部分0000.gz
A2 / B2 / C2 /部分0000.gz
A1 / B1 / C1 / part-0001.gz

我必须将所有这些文件都提供给一个Map作业。从我看到,对于使用MultipleFileInputFormat,所有输入文件都需要在同一目录中。是否可以将多个目录直接传递到作业中? 如果没有,那么是否可以有效地将这些文件放入一个目录而不会发生命名冲突或将这些文件合并为一个单独的压缩gz文件。
注意:我使用普通的java来实现Mapper而不使用Pig或hadoop流。

对于上述问题的任何帮助将深表感谢 谢谢,
Ankit

1 个答案:

答案 0 :(得分:16)

FileInputFormat.addInputPaths()可以采用逗号分隔的多个文件列表,例如

FileInputFormat.addInputPaths("foo/file1.gz,bar/file2.gz")