Comment vérifier la taille d'un répertoire HDFS?


Réponses:


163

Avant la version 0.20.203 et officiellement obsolète dans la version 2.6.0:

hadoop fs -dus [directory]

Depuis 0.20.203 (lien mort) 1.0.4 et toujours compatible jusqu'à 2.6.0 :

hdfs dfs -du [-s] [-h] URI [URI …]

Vous pouvez également exécuter hadoop fs -helppour plus d'informations et de détails.


19
-du -s (-dus est obsolète)
Carlos Rendon

69

hadoop fs -du -s -h /path/to/dir affiche la taille d'un répertoire sous une forme lisible.


Pour les versions plus récentes de hdfs, hdfs -du -s -h /path/to/dirc'est plus approprié.
Adelson Araújo

26

S'étendant à Matt D et à d'autres réponses, la commande peut être jusqu'à Apache Hadoop 3.0.0

hadoop fs -du [-s] [-h] [-v] [-x] URI [URI ...]

Il affiche la taille des fichiers et des répertoires contenus dans le répertoire donné ou la longueur d'un fichier au cas où il ne s'agirait que d'un fichier.

Options:

  • L' option -s entraînera l' affichage d' un résumé agrégé des longueurs de fichier , plutôt que des fichiers individuels. Sans l'option -s, le calcul est effectué en allant d'un niveau à partir du chemin donné.
  • L' option -h formatera la taille des fichiers de manière lisible par l'homme (par exemple 64,0 m au lieu de 67108864)
  • L' option -v affichera les noms des colonnes sous forme de ligne d'en-tête.
  • L' option -x exclura les instantanés du calcul du résultat. Sans l'option -x (par défaut), le résultat est toujours calculé à partir de tous les INodes, y compris tous les instantanés sous le chemin donné.

Le du renvoie trois colonnes au format suivant:

 +-------------------------------------------------------------------+ 
 | size  |  disk_space_consumed_with_all_replicas  |  full_path_name | 
 +-------------------------------------------------------------------+ 

Exemple de commande:

hadoop fs -du /user/hadoop/dir1 \
    /user/hadoop/file1 \
    hdfs://nn.example.com/user/hadoop/dir1 

Code de sortie: renvoie 0 en cas de succès et -1 en cas d'erreur.

source: doc Apache


12

Avec cela, vous obtiendrez la taille en Go

hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'

1
hdfs dfs -du PATHTODIRECTORY | awk '/ ^ [0-9] + / {print int ($ 1 / (1024 3) "[GB] \ t" $ 2}' - Veuillez mettre à jour votre commande. Deux parenthèses fermantes après 1024 3. Cela ne devrait être que 1
gubs

2

Lorsque vous essayez de calculer le total d'un groupe particulier de fichiers dans un répertoire, l' -soption ne fonctionne pas (dans Hadoop 2.7.1). Par exemple:

Structure du répertoire:

some_dir
├abc.txt    
├count1.txt 
├count2.txt 
└def.txt    

Supposons que chaque fichier a une taille de 1 Ko. Vous pouvez résumer tout le répertoire avec:

hdfs dfs -du -s some_dir
4096 some_dir

Cependant, si je veux la somme de tous les fichiers contenant "count", la commande échoue.

hdfs dfs -du -s some_dir/count*
1024 some_dir/count1.txt
1024 some_dir/count2.txt

Pour contourner ce problème, je passe généralement la sortie via awk.

hdfs dfs -du some_dir/count* | awk '{ total+=$1 } END { print total }'
2048 

1

Pour obtenir la taille du répertoire, hdfs dfs -du -s -h / $ yourDirectoryName peut être utilisé. hdfs dfsadmin -report peut être utilisé pour afficher un rapport de stockage rapide au niveau du cluster.


0

% d'espace utilisé sur le cluster Hadoop
sudo -u hdfs hadoop fs –df

Capacité sous dossier spécifique:
sudo -u hdfs hadoop fs -du -h /user


J'ai eu une erreur avec "hdfs", la façon dont cela a fonctionné pour moi était: hadoop fs -du -h /user (je n'avais pas besoin d'utiliser sudo)
diens

sudon'est pas nécessaire et doit être utilisé avec parcimonie.
Climbs_lika_Spyder

0

hadoop version 2.3.33:

hadoop fs -dus  /path/to/dir  |   awk '{print $2/1024**3 " G"}' 

entrez la description de l'image ici


0

hdfs dfs -count <dir>

info de la page de manuel:

-count [-q] [-h] [-v] [-t [<storage type>]] [-u] <path> ... :
  Count the number of directories, files and bytes under the paths
  that match the specified file pattern.  The output columns are:
  DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
  or, with the -q option:
  QUOTA REM_QUOTA SPACE_QUOTA REM_SPACE_QUOTA
        DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME

-1

La commande devrait être hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...: Affiche la quantité d'espace, en octets, utilisée par les fichiers qui correspondent au modèle de fichier spécifié.

  • -s : Plutôt que d'afficher la taille de chaque fichier individuel qui correspond au
    modèle, affiche la taille totale (résumé).

  • -h : Formate la taille des fichiers de manière lisible par l'homme plutôt qu'un certain nombre d'octets. (Ex Mo / Go / To, etc.)

    Notez que, même sans l'option -s, cela n'affiche que les résumés de taille d'un niveau dans un répertoire.

    La sortie est dans le nom de la taille du formulaire (chemin complet)


réponse en double
mrsrinivas
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.