Bir kenar düğümünde çalışan bir java uygulamasında, varsa bir hdfs klasörünü silmem gerekir. Klasörde çıkan bir mapreduce işini (spark ile) çalıştırmadan önce bunu yapmam gerekiyor. javid'ten hdfs klasörünü sil
Ben Ancak yöntemorg.apache.hadoop.fs.FileUtil.fullyDelete(new File(url))
kullanabilirsiniz bulundu Ben sadece yerel klasörde (çalıştıran bilgisayarda yani dosya URL) ile çalışmak yapabilirsiniz. hdfs://hdfshost:port
HDF'ler namenode IPC olmak
url = "hdfs://hdfshost:port/the/folder/to/delete";
: Ben böyle bir şey kullanmaya çalıştı. Mapreduce için kullanıyorum, bu yüzden doğru. Ancak hiçbir şey yapmıyor.
Peki, hangi URL'yi kullanmalıyım, yoksa başka bir yöntem var mı?
Not: here söz konusu basit bir projedir.
Configuration conf = new Configuration();
conf.set("fs.hdfs.impl",org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
conf.set("fs.file.impl",org.apache.hadoop.fs.LocalFileSystem.class.getName());
FileSystem hdfs = FileSystem.get(URI.create("hdfs://<namenode-hostname>:<port>"), conf);
hdfs.delete("/path/to/your/file", isRecusrive);
Benim için dosya yolunda
Mükemmel, işe yarıyor. Ayrıca diğer standart dosya sistemi işlemlerini yapmak için hdfs kullanabileceğimi umuyorum. –
@Juh_ yup, 'hdfs' ile yukarıdakilerden çok şey yapabilirsiniz - dosyalar oluşturun, liste dosyaları, vb. Silin vb – Tucker
Şimdi silme yöntemi kullanımdan kaldırılmıştır. –