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.