2015-12-07 27 views
12

Sadece Hortonworks sanal makine VM'sini indirdim, içerisinde 2.7.1 sürümüyle birlikte Hadoop var. Bazı dosyaları ekleyerekHDFS'den dosyalar nasıl silinir?

... komutunu ekliyorum. Bunun ardından ben

hadoop fs -rm /hw1/* 

... komutla, eklenen dosyaları siliyorum ve ondan sonra

hadoop fs -expunge 

... komutla, çöp kutusu temizleme. Ancak, Recyle bin temizlendikten sonra kalan DFS alanı değişmedi. Hatta verilerin gerçekten/hw1/ve recyle kutusundan silindiğini görebiliyorum. fs.trash.interval parameter = 1 var.

Aslında tüm veri bölümlerini /hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2 klasöründe parçalara bölebilir ve bu gerçekten beni şaşırtıyor çünkü silinmelerini beklerim.

Sorularım, verileri gerçekten silecekleri şekilde nasıl silecekleri? Birkaç ekleme ve silme işleminden sonra boş alan bıraktım.

+0

O 'namenode' meta silinmiş demektir ama' datanode' verileri silmek vermedi. Hatalar veya uyarılar için 'adenode' ve' datanode' kayıtlarınızı kontrol edin. Hdfs dfsadmin -report'u çalıştırmayı deneyin ve herhangi bir yararlı bilgi alıp almadığınızı görün. – alvits

+0

Ayrıca, defter tutma işlemini gerçekleştirmek biraz zaman alacaktır. –

+0

Hadoop, içeriği -rm komutundaki thrash dizinine taşır. Eğer klasörleri kalıcı olarak silmek istiyorsanız o zaman 'fs.trash'de belirtilen dakika sayısı sonra/trash dizinindeki dosyalar sildiklerinden, hadoop fs -rm -skipTrash/hw1/*' –

cevap

8

Sorununuz HDFS'nin temelindedir. HDFS'de (ve diğer dosya sistemlerinde) dosyaların fiziksel olarak silinmesi en hızlı işlem değildir. HDFS dosya sistemi dağıtıldığı ve genellikle silinen dosyanın farklı sunucularında en az 3 kopya çoğalttığı için, her bir çoğaltma (farklı sabit disklerdeki birçok bloktan oluşabilir) dosyayı silme isteğiniz sonrasında arka planda silinmelidir.

dosya ile ilişkili bloklar serbest neden olur bir dosyanın silinmesi: Hadoop ait

Official documentation aşağıdaki söyler. 'un bir kullanıcı tarafından silinen bir kullanıcı tarafından silinmesi ve HDFS'de serbest boşluğunda ilgili artış süresi arasında kayda değer bir zaman gecikmesi olabilir.

+0

numaralı telefondaki çöp özelliğini devre dışı bırakmak için 'fs.trash.interval = 0' ayarını yapabilirsiniz, bazı dosyalar silindikten sonra bu tam olarak sorun oldu. – serg

1

Durga Viswanath Gadiraju doğru soru, belki de benim bilgisayarım yavaş ve VM kullanır, 10 dakika sonra dosyalar fiziksel olarak silinir, eğer soruda benim tarafımdan kullanılan algoritma kullanırsanız. Not fs.trash.interval parametresini = 1 ayarlayın. Veya varsayılan dosyalar 6 saatten daha hızlı silinmez.

+0

Tüm – maxteneff

6

hadoop fs -rm -R URI

-R seçeneği dizin ve dizinleri onun altında herhangi bir içeriği siler deneyin.

1

benim için neyin işe yarayıp:

hadoop fs -rmr -R <your Directory>