hadoop可以从多个目录和文件中获取输入

时间:2013-05-08 16:13:19

标签: input hadoop

我将fileinputFormat设置为hadoop输入。 arg[0]+"/*/*/*"表示匹配无文件。

我想要的是从多个文件中读取:

Directory1
---Directory11
   ---Directory111
        --f1.txt
        --f2.txt
---Directory12
Directory2
---Directory21

在Hadoop中有可能吗? 谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用*****运算符从多个目录和文件中获取输入。很可能是因为“arg [0]”参数不正确,因此它找不到文件。

作为替代方案,您也可以使用InputFormat.addInputPath,或者如果您需要单独的格式或映射器,则可以使用MultipleInputs类。

基本添加路径的示例

FileInputFormat.addInputPath(job, myInputPath);

以下是MultipleInputs

的示例
MultipleInputs.addInputPath(job, inputPath1, TextInputFormat.class, MyMapper.class);
MultipleInputs.addInputPath(job, inputPath2, TextInputFormat.class, MyOtherMapper.class);

这个问题也非常相似,并且有很好的答案Hadoop to reduce from multiple input formats