我试图将数据从 HDFS 中的一个目录复制到 HDFS 中的另一个目录,但我面临的问题很少。这是我的代码片段。
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
LOGGER.info("Connected");
Path source=new Path("/data_dev/deepak/src/raw/epic/cl_qanswer_qa/hdp_process_date=2017-07-25/hour=00/minute=00/");
Path target=new Path("/data_dev/deepak/dest/raw/epics/cl_qanswer_qa/hdp_process_date=2017-07-25/hour=00/minute=00/");
System.out.println(source);
System.out.println(target);
System.out.println("source"+fs.exists(source));
System.out.println("source"+fs.exists(target));
FileSystem srcfs = FileSystem.get(conf);
FileSystem dstFS = FileSystem.get(conf);
RemoteIterator<LocatedFileStatus> sourceFiles = srcfs.listFiles(source, false);
LOGGER.info(sourceFiles.toString());
LOGGER.info("source File System "+fs.toString());
LOGGER.info("destniation File System"+dstFS.toString());
if(!fs.exists(target))
{
fs.create(target);
LOGGER.info("created thr path");
}
if(sourceFiles != null) {
while(sourceFiles.hasNext()){
System.out.println(sourceFiles.toString());
Path srcfilepath = sourceFiles.next().getPath();
System.out.println(srcfilepath);
if(FileUtil.copy(srcfs, srcfilepath, dstFS, target, false,true, conf)){
System.out.println("Copied Successfully" );
}
else
{
System.out.println("Copy Failed");
}
} …Run Code Online (Sandbox Code Playgroud)