web-dev-qa-db-fra.com

Comment supprimer des fichiers du HDFS?

Je viens de télécharger Hortonworks Sandbox VM, où se trouvent Hadoop avec la version 2.7.1. J'ajoute des fichiers en utilisant le

hadoop fs -put /hw1/* /hw1

...commander. Après je supprime les fichiers ajoutés, par le

hadoop fs -rm /hw1/*

... commande, et après le nettoyage de la corbeille, par le

hadoop fs -expunge

...commander. Mais l’espace restant DFS n’a pas changé après le nettoyage du bac de récupération. Même moi, je peux voir que les données ont vraiment été supprimées du répertoire/hw1/et du bac de récupération. J'ai le fs.trash.interval parameter = 1.

En fait, je peux retrouver toutes mes données divisées en morceaux dans le dossier /hadoop/hdfs/data/current/BP-2048114545-10.0.2.15-1445949559569/current/finalized/subdir0/subdir2, ce qui me surprend beaucoup, car je pense qu’elles seront supprimées.

Donc, ma question est de savoir comment supprimer les données de la manière dont elles seront réellement supprimées. Après quelques ajouts et suppressions, l'espace libre a été épuisé.

19
serg

Votre problème est à la base de HDFS. Dans HDFS (et dans de nombreux autres systèmes de fichiers), la suppression physique de fichiers n'est pas l'opération la plus rapide. HDFS étant un système de fichiers distribué et répliquant généralement au moins 3 réplicas sur différents serveurs du fichier supprimé, chaque réplica (qui peut consister en plusieurs blocs sur différents disques durs) doit être supprimé en arrière-plan après votre demande de suppression du fichier.

Documentation officielle de Hadoop nous dit ce qui suit:

La suppression d'un fichier provoque la libération des blocs associés au fichier. Notez que il pourrait y avoir un délai appréciable entre le moment où un fichier est supprimé par un utilisateur et l'heure de l'augmentation correspondante de free espace dans HDFS.

11
maxteneff

Essayez hadoop fs -rm -R URI

L'option -R supprime le répertoire et son contenu de manière récursive.

13
BruceWayne

ce qui fonctionne pour moi: 

hadoop fs -rmr -R <your Directory>
4
Flowra

Durga Viswanath Gadiraju a raison, c’est une question de temps, peut-être que mon ordinateur est lent et utilise également la machine virtuelle; après 10 minutes, les fichiers sont physiquement supprimés, si vous utilisez l’algorithme utilisé par moi dans la question . le paramètre fs.trash.interval = 1. Sinon, les fichiers ne seront pas supprimés plus de 6 heures par défaut.

1
serg