我正在使用Cascalog API运行hadoop mapreduce作业。我想使用多个输入文件夹来处理map reduce作业。
我有两个文件夹在HDFS的rooPath/Folder_1 &rootPath/Folder_2,其中包含要在作业中处理的文件。
我给工作输入文件夹通过桶Tap功能:
new PailTap(rootPath + "Folder_1",
JcascalogUtils.getPailTapOptions());
我可以给同一个作业设置多个文件夹吗?
和我可以给一个像rootPath+*/这样的正则表达式文件夹路径,以便它将处理rootPath文件夹中的所有文件夹。
谢谢你的帮助:)
你可以这样使用MultiSourceTap:
dataSource = new MultiSourceTap(
new PailTap(rootPath + "Folder_1",JcascalogUtils.getPailTapOptions()),
new PailTap(rootPath + "Folder_2",JcascalogUtils.getPailTapOptions())
);
或使用GlobHfs
dataSource = new GlobHfs(new PailTap(rootPath,JcascalogUtils.getPailTapOptions()).getScheme() , rootPath + "*");