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

Input hadoop可以从多个目录和文件中获取输入吗,input,hadoop,Input,Hadoop,我将fileinputFormat设置为hadoop输入。 arg[0]+“/*/*/*”表示不匹配任何文件 我想从多个文件中读取以下内容: Directory1 ---Directory11 ---Directory111 --f1.txt --f2.txt ---Directory12 Directory2 ---Directory21 目录1 ---目录11 ---目录111 --f1.txt --f2.txt ---目录12 目录2 ---目录21

我将fileinputFormat设置为hadoop输入。
arg[0]+“/*/*/*”
表示不匹配任何文件

我想从多个文件中读取以下内容:

Directory1 ---Directory11 ---Directory111 --f1.txt --f2.txt ---Directory12 Directory2 ---Directory21 目录1 ---目录11 ---目录111 --f1.txt --f2.txt ---目录12 目录2 ---目录21 在Hadoop中可能吗?
谢谢

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

或者,也可以使用InputFormat.addInputPath,或者如果需要单独的格式或映射器,则可以使用该类

添加路径的基本示例

FileInputFormat.addInputPath(job, myInputPath);
下面是一个多输入的示例

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

另一个问题也很相似,有很好的答案

因此,它将读取一个文件夹中的多个文件夹,并递归地读取每个子文件夹中的多个文件??我错了,并更新了我的答案以反映这一点。我猜你的“arg[0]”是错的。你从哪里用的?如果它是命令行,您可能需要$arg[0],如果它来自代码,您应该在我的java代码中使用multipleinputs方法。我使用了FileInputFormat.setInputPaths(conf,new Path(args[0]);是args[0]和它后面的东西,我应该替换多目录部分?你能检查一下,确保这些文件从arg[0]方向开始。hadoop hdfs-ls/my/Path/to/files是的,在我的hadoop arg[0]方向。还有..我的arg[0]路径是:/user/XXX/hadoopin,这些嵌套文件夹和文件的根文件夹是emails。当我使用代码arg[0]+“/*/*/*/*/*/”时,它显示/user/XXX/hadoopin/email/email11,并且与任何文件都不匹配。。。