Hadoop: Как переместить файлы HDFS из одного каталога в другой каталог? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть каталог ресурсов HDFS и каталог назначения архива в HDFS.В начале каждого запуска моей работы мне нужно переместить (или скопировать, а затем удалить) все файлы деталей, имеющиеся в моем каталоге Source , в мой каталог Archive .

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/.

1 Ответ

0 голосов
/ 22 февраля 2019

Проверьте, будет ли это работать на вас,

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