HortonworksサンドボックスVMをダウンロードしたところ、その中にバージョン2.7.1のHadoopがあります。を使用していくつかのファイルを追加します
hadoop fs -put /hw1/* /hw1
...コマンド。その後、追加したファイルを削除しています
hadoop fs -rm /hw1/*
...コマンド、およびごみ箱のクリーニング後、
hadoop fs -expunge
...コマンド。ただし、Recyle binがクリーニングされた後、DFS Remainingスペースは変更されません。/hw1 /とrecyle binからデータが本当に削除されたことがわかります。私が持っています fs.trash.interval parameter = 1
。
実際には、/hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2
フォルダー、これは本当に驚きです。なぜなら、それらが削除されることを期待しているからです。
だから私の質問は、データが本当に削除される方法でデータを削除する方法ですか?いくつかの追加と削除を行った後、空き領域がなくなりました。
あなたの問題はHDFSの基礎の内側にあります。 HDFS(および他の多くのファイルシステム)では、ファイルの物理的な削除は最速の操作ではありません。 HDFSは分散ファイルシステムであり、通常、削除されたファイルの異なるサーバーに少なくとも3つのレプリカを複製するため、ファイルを削除するように要求した後、各レプリカ(異なるハードドライブ上の多くのブロックで構成される場合があります)をバックグラウンドで削除する必要があります。
公式ドキュメント Hadoopの次のことがわかります。
ファイルを削除すると、ファイルに関連付けられているブロックが解放されます。 ファイルがユーザーによって削除されてからHDFSの空き容量が増加するまでにかなりの時間遅延があることに注意してください。
hadoop fs -rm -R URI
-Rオプションは、ディレクトリとその下のコンテンツを再帰的に削除します。
私のために働くもの:
hadoop fs -rmr -R <your Directory>
使用できます
hdfs dfs -rm -R /path/to/HDFS/file
hadoop dfs
は廃止されました。
Durga Viswanath Gadirajuは時間の問題です、私のPCは遅いかもしれませんし、質問で私が使用したアルゴリズムを使用している場合、10分後にファイルが物理的に削除された後、VMも使用します。 fs.trash.intervalパラメーターを1に設定することに注意してください。または、デフォルトでは、ファイルは6時間よりも早く削除されません。