hadoop:如何将一个目录中的hdfs文件移动到另一个目录?

ocebsuys  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(924)

我在hdfs中有一个hdfs源目录和一个目标归档目录。在每次运行作业时,我都需要将源目录中的所有部件文件移动(或复制,然后删除)到存档目录。

SparkSession spark = SparkSession.builder().getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
String hdfsSrcDir = "hdfs://clusterName/my/source";
String archiveDir = "hdfs://clusterName/my/archive";
try{
    FileSystem fs = FileSystem.get(new URI(hdfsSrcDir ),jsc.hadoopConfiguration());
}

我不知道如何继续下去。现在是我的 fs 对象只引用了我的源目录。
创建 fs2 我相信档案馆的位置不会有帮助。
我已经知道了 FileSystem.rename() ,但它将文件名作为参数。我得走了 /my/source/*/my/archive/ .

laawzig2

laawzig21#

看看这是否对你有用,

Configuration configuration = new Configuration(); 
configuration.set("fs.defaultFS", "hdfs://xyz:1234"); 
FileSystem filesystem = FileSystem.get(configuration); 
FileUtil.copy(filesystem, new Path("src/path"), 
              filesystem, new Path("dst/path"), false, configuration); 
filesystem.delete(new Path("src/path"), true);

相关问题