¿La forma de comprobar el tamaño de un directorio HDFS?


Respuestas:


161

Antes de 0.20.203, y oficialmente obsoleto en 2.6.0:

hadoop fs -dus [directory]

Desde 0.20.203 (enlace muerto) 1.0.4 y aún compatible hasta 2.6.0 :

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

También puede ejecutar hadoop fs -helppara obtener más información y detalles.


19
-du -s (-dus está en desuso)
Carlos Rendon

69

hadoop fs -du -s -h /path/to/dir muestra el tamaño de un directorio en forma legible.


Para las versiones más recientes de hdfs, hdfs -du -s -h /path/to/dires más apropiado.
Adelson Araújo

26

Extendiéndose a Matt D y otras respuestas, el comando puede ser hasta Apache Hadoop 3.0.0

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

Muestra los tamaños de los archivos y directorios contenidos en el directorio dado o la longitud de un archivo en caso de que sea solo un archivo.

Opciones:

  • La opción -s dará como resultado un resumen agregado de la longitud de los archivos que se muestra, en lugar de los archivos individuales. Sin la opción -s, el cálculo se realiza yendo 1 nivel de profundidad desde la ruta dada.
  • La opción -h formateará los tamaños de los archivos de forma legible por humanos (por ejemplo, 64,0 m en lugar de 67108864)
  • La opción -v mostrará los nombres de las columnas como una línea de encabezado.
  • La opción -x excluirá las instantáneas del cálculo de resultados. Sin la opción -x (predeterminada), el resultado siempre se calcula a partir de todos los INodes, incluidas todas las instantáneas de la ruta dada.

El du devuelve tres columnas con el siguiente formato:

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

Comando de ejemplo:

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

Código de salida: devuelve 0 en caso de éxito y -1 en caso de error.

fuente: Apache doc


12

Con esto obtendrás tamaño en GB

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}' - Actualiza tu comando. Dos corchetes de cierre después de 1024 3. Debe ser solo 1
gubs

2

Al intentar calcular el total de un grupo particular de archivos dentro de un directorio, la -sopción no funciona (en Hadoop 2.7.1). Por ejemplo:

Estructura de directorios:

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

Suponga que cada archivo tiene un tamaño de 1 KB. Puede resumir todo el directorio con:

hdfs dfs -du -s some_dir
4096 some_dir

Sin embargo, si quiero la suma de todos los archivos que contienen "contar", el comando se queda corto.

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

Para evitar esto, generalmente paso la salida a través de awk.

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

1

Para obtener el tamaño del directorio, se puede usar hdfs dfs -du -s -h / $ yourDirectoryName . hdfs dfsadmin -report se puede utilizar para ver un informe rápido de almacenamiento a nivel de clúster.


0

% de espacio utilizado en el clúster de Hadoop
sudo -u hdfs hadoop fs –df

Capacidad en carpeta específica:
sudo -u hdfs hadoop fs -du -h /user


Recibí un error con "hdfs", la forma en que funcionó para mí fue: hadoop fs -du -h /user (no necesitaba usar sudo)
diens

sudono es necesario y debe usarse con moderación.
Climbs_lika_Spyder

0

hadoop versión 2.3.33:

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

ingrese la descripción de la imagen aquí


0

hdfs dfs -count <dir>

información de la página del manual:

-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

El comando debe ser hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...: muestra la cantidad de espacio, en bytes, utilizado por los archivos que coinciden con el patrón de archivo especificado.

  • -s : en lugar de mostrar el tamaño de cada archivo individual que coincide con el
    patrón, muestra el tamaño total (resumen).

  • -h : Formatea los tamaños de los archivos de una manera legible por humanos en lugar de una cantidad de bytes. (Ex MB / GB / TB, etc.)

    Tenga en cuenta que, incluso sin la opción -s, esto solo muestra resúmenes de tamaño en un nivel de profundidad en un directorio.

    La salida tiene el tamaño del formulario (ruta completa)


respuesta duplicada
mrsrinivas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.