web-dev-qa-db-fra.com

Que signifie exactement non DFS utilisé?

C'est ce que j'ai vu récemment sur l'interface utilisateur Web.

 Configured Capacity     :   232.5 GB
 DFS Used    :   112.44 GB
 Non DFS Used    :   119.46 GB
 DFS Remaining   :   613.88 MB
 DFS Used%   :   48.36 %
 DFS Remaining%  :   0.26 %

et je suis tellement confus que non-dfs Used occupe plus de la moitié de sa capacité, 

ce qui, je pense, signifie que la moitié du stockage hadoop est gaspillée

Après avoir passé du temps à chercher, je me suis contenté de formater namenode et de repartir de zéro.

Et puis j'ai copié un énorme fichier texte (environ 19 giga-octets) du fichier local au format HDFS (avec succès).

Maintenant, l'interface utilisateur dit

Configured Capacity  :   232.5 GB
DFS Used     :   38.52 GB
Non DFS Used     :   45.35 GB
DFS Remaining    :   148.62 GB
DFS Used%    :   16.57 %
DFS Remaining%   :   63.92 %

avant la copie, DFS utilisé et non DFS utilisé étaient tous deux égaux à 0.

Étant donné que DFS utilisé correspond environ au double de la taille du fichier texte d'origine et que j'ai configuré 2 copies,

Je suppose que DFS Used est composé de 2 copies d’original et méta.

Mais je n’ai toujours aucune idée de l’origine de Non DFS Used ni de la raison pour laquelle cela prend plus de ressources que DFS Used.

Ce qui s'est produit? Ai-je commis une erreur?

21
Adrian Seungjin Lee

"Non DFS utilisé" est calculé à l'aide de la formule suivante:

Non DFS utilisé = Capacité configurée - Espace restant - DFS utilisé 

C'est toujours déroutant, du moins pour moi. 

Parce que Capacité configurée = Espace disque total - Espace réservé.  

So Non DFS utilisé = (Espace disque total - Espace réservé) - Espace restant - DFS utilisé  

Prenons un exemple. En supposant que j'ai un disque de 100 Go et que je mette l'espace réservé (dfs.datanode.du.reserved) à 30 Go. 

Sur le disque, le système et d’autres fichiers utilisaient jusqu’à 40 Go, DFS utilisé 10 Go. Si vous exécutez df -h , L’espace disponible est de 50 Go pour ce volume de disque. 

Dans l'interface utilisateur Web HDFS, il indiquera 

Non DFS utilisé = 100 Go (total) - 30 Go (réservé) - 10 Go (DFS utilisé) - 50 Go (restant) = 10 Go

Cela signifie donc que vous avez initialement configuré pour réserver 30G pour une utilisation autre que DFS et 70 G pour HDFS. Cependant, il s'avère que l'utilisation non dfs dépasse la réservation de 30G et consomme 10 Go d'espace qui devrait appartenir à HDFS!

Le terme "Non DFS utilisé" devrait vraiment être renommé en quelque chose comme "Combien de capacité DFS configurée est occupée par une utilisation autre que dfs"

Et il faut cesser d'essayer de comprendre pourquoi l'utilisation non-DFS est si élevée dans hadoop. 

lsof | grep delete est une commande utile, qui vous aidera à identifier les fichiers ouverts supprimés. Parfois, les processus Hadoop (tels que Hive, Yarn, mapred et hdfs) peuvent contenir des références à ces fichiers déjà supprimés. Et ces références occuperont de l'espace disque. 

De plus, du -hsx * | sort -rh | head -10 aide à répertorier les dix plus grands dossiers. 

33
Tim Fei

Les données non DFS utilisées sont toutes les données du système de fichiers du ou des nœuds de données qui ne figurent pas dans dfs.data.dirs. Cela inclut les fichiers journaux, la sortie mapreduce shuffle et les copies locales des fichiers de données (si vous les placez sur un nœud de données). Utilisez du ou un outil similaire pour voir ce qui prend de la place dans votre système de fichiers.

7
highlycaffeinated

La définition simplifiée correcte est: "Toutes les données qui ne sont pas écrites par HDFS dans le même système de fichiers que le dfs.data.dirs. En d'autres termes, si vous utilisez des commandes hdfs dfs pour copier des données, elles se retrouvent sous dfs.data.dirs mais elles sont considérées comme" Utilisation de DFS ", et si vous utilisez la commande cp régulière pour copier des fichiers dans dfs.data.dirs, il deviendra" utilisation non-DFS ".

1
haridsv

Les fichiers non-dfs seront des fichiers de cache qui seront stockés par le gestionnaire de noeud. Vous pouvez vérifier le chemin sous la propriété yarn.nodemanager.local-dirs dans le fichier yarn-site.xml.

Vous pouvez vous référer à Le yarn-site.xml par défaut pour plus de détails.

0
Sumukh

Une dernière chose.
Non DFS used = 100GB(Total) - 30 GB( Reserved) - 10 GB (DFS used) - 50GB(Remaining) = 10 GB
Etant donné que ext3/ext4 réserve par défaut 5% (voir le nombre de blocs réservés), il devrait être
Non DFS used = 100GB(Total) - 30 GB( Reserved from App) - 5 GB(Reserved from FS) - 10 GB (DFS used) - 50GB(Remaining) = 5 GB 

À partir de Sudo tune2fs -l /dev/sdm1, obtenez le "nombre de blocs réservés".
BTW, tune2fs -m 0.2 /dev/sdm1 pour ajuster l’espace réservé.

0
world watera