Ich habe gerade Hortonworks Sandbox VM heruntergeladen, darin gibt es Hadoop mit der Version 2.7.1. Ich füge einige Dateien mit demWie lösche ich Dateien vom HDFS?
hadoop fs -put /hw1/* /hw1
... Befehl hinzu. Nachdem es mir das Löschen der Dateien hinzugefügt, durch den
hadoop fs -rm /hw1/*
... Befehl ein, und nachdem es den Papierkorbs der Reinigung durch den
hadoop fs -expunge
... Befehl. Der DFS Remaining-Speicherplatz wurde jedoch nicht geändert, nachdem der Papierkorb bereinigt wurde. Selbst ich kann sehen, dass die Daten wirklich aus dem/hw1/und dem Recyle Bin gelöscht wurden. Ich habe die fs.trash.interval parameter = 1
.
Eigentlich kann ich alle meine Daten in Stücke im Ordner /hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2
aufgeteilt finden, und das ist wirklich überraschend, weil ich erwarte, dass sie gelöscht werden.
Also meine Frage, wie Sie die Daten so löschen, dass sie wirklich gelöscht werden? Nach ein paar Hinzufügungen und Löschungen hatte ich freien Speicherplatz.
Es bedeutet, dass die 'namenode' die Metadaten gelöscht, aber die' datanode' löschen, die Daten nicht. Überprüfen Sie Ihre 'namenode'- und' datanode'-Protokolle auf Fehler oder Warnungen. Versuchen Sie 'hdfs dfsadmin -report' auszuführen und sehen Sie, ob Sie nützliche Informationen erhalten. – alvits
Auch wird es einige Zeit dauern, um die Buchhaltung durchzuführen. –
Hadoop verschiebt den Inhalt in das thrash-Verzeichnis unter dem Befehl -rm. Wenn Sie Ordner dauerhaft löschen wollen, müssen Sie den Befehl 'hadoop fs -rm -skipTrash/hw1/*' –