2017-09-22 11 views
0

Nous devons compter le nombre de fichiers dans beaucoup de répertoires dans un cluster multi-nœuds multi-locataires avec beaucoup de quantités de données. Et donc, je me demande d'où la commande "hdfs dfs -count/chemin/vers/répertoire" obtient son information? Est-ce que cela fonctionne comme un HDFS dfs -ls? Ou il obtient ses informations directement à partir du Namenode dans le HDFS?Où hdfs dfs -count obtient-il des informations?

Merci beaucoup!

Répondre

2

Il appelle la méthode getContentSummary de l'API FileSystem:

ContentSummary summary = src.fs.getContentSummary(src.path); 
out.println(summary.toString(showQuotas) + src); 

code source pour org.apache.hadoop.fs.FsShell.Count

code source pour getContentSummary

+0

Merci! Je vois à partir du code source qu'il a un comportement similaire à celui de ls (c'est une boucle for passant par les répertoires). – FakirAyoub

+0

Oui, car 'ls' imprime aussi la taille du fichier. – philantrovert