0

我想将一些文件移动到输入文件夹并通过将其放入 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);
}

正如我所说,所需的东西是通过其他方式实现的。但是,我想知道,无论要求如何,为什么不执行此操作。

4

0 回答 0