我想将一些文件移动到输入文件夹并通过将其放入 configure() 方法来尝试所需的代码(由于我有一些限制,我不得不使用旧的 mapred API)。但是,有些配置中的代码没有被执行。
我已经以其他更好的方式实现了我的要求。虽然这是一个愚蠢的想法,但我想知道为什么它没有被执行。我检查了工作跟踪器,所有变量都得到了正确的值
代码:
主要:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date = sdf.format(new Date());
if(args[3].toString().equalsIgnoreCase("net")){
imgInpPath = "/user/mapreduce/output/net/"+date+"/";
inputDir = inputDir+"net/";
}
conf.set("imgInpPath", imgInpPath);
conf.set("inputDir", inputDir);
FileInputFormat.setInputPaths(conf,inputDir);
在配置()
inputPath = conf.get("inputDir");
Path inputImgPath = new Path(conf.get("imgInpPath"));
Configuration config = new Configuration();
FileSystem fileSystem = FileSystem.get(config);
inputImgPath = fileSystem.makeQualified(inputImgPath);
FileStatus[] status = fileSystem.listStatus(inputImgPath, new PathFilter(){
@Override
public boolean accept(Path name) {
return name.getName().contains("part");
}});
for(int i=0; i <status.length;i++)
{
Path inpPath = status[i].getPath();
FileUtil.copy(fileSystem, inpPath, fileSystem, new Path(inputPath), true , conf);
}
正如我所说,所需的东西是通过其他方式实现的。但是,我想知道,无论要求如何,为什么不执行此操作。