java - Hadoop:如何将HDFS文件从一个目录移动到另一目录?

标签 java hadoop hdfs

我在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/

最佳答案

检查这是否适合您,

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);

关于java - Hadoop:如何将HDFS文件从一个目录移动到另一目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54828782/

相关文章:

java - Lucene 4.0 中的文本搜索

java - 下游事件在jboss的netty中是如何工作的?

hadoop - 在Hadoop中,如何获取当前正在运行的Jobtracker的实例?

hadoop - 配置单元,请求特定范围内的文件

java - 如何在java中打印PDF文件而不进行打印预览

java - 如何在 jsp 页面和 servlet 之间共享数据

java - 如何使用Java Hadoop MapReduce以降序对数据集中的列进行排序?

hadoop - 信息配置弃用 session ID 已弃用,而是使用 dfs 指标 session ID

hadoop - 从hdfs中删除文件是否还会从复制的datanode中删除文件?

hadoop - 如何检索永久删除的 hdfs 中的文件