gpt4 book ai didi

java - Hadoop : Provide directory as input to MapReduce job

转载 作者:可可西里 更新时间:2023-11-01 14:14:23 24 4
gpt4 key购买 nike

我正在使用 Cloudera Hadoop。我能够运行简单的 mapreduce 程序,我提供一个文件作为 MapReduce 程序的输入。

此文件包含所有其他要由 mapper 函数处理的文件。

但是,我卡在了一点。

/folder1
- file1.txt
- file2.txt
- file3.txt

如何将 MapReduce 程序的输入路径指定为 "/folder1",以便它可以开始处理该目录中的每个文件?

有什么想法吗?

编辑:

1) 首先,我提供了 inputFile.txt 作为 mapreduce 程序的输入。它运行良好。

>inputFile.txt
file1.txt
file2.txt
file3.txt

2) 但是现在,我不想提供输入文件,而是想在命令行上提供一个输入目录作为 arg[0]。

hadoop jar ABC.jar /folder1 /output

最佳答案

问题是 FileInputFormat 不会在输入路径目录中递归读取文件。

解决方案:使用以下代码

FileInputFormat.setInputDirRecursive(job, true); 在您的 Map Reduce 代码中的下一行之前

FileInputFormat.addInputPath(job, new Path(args[0]));

可以查看here它针对哪个版本进行了修复。

关于java - Hadoop : Provide directory as input to MapReduce job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com