¿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.

Matt D
fuente
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.

Marius Soutier
fuente
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

mrsrinivas
fuente
12

Con esto obtendrás tamaño en GB

hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'
dilshad
fuente
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 
Grr
fuente
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.

Harikrishnan Ck
fuente
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

Oren Efron
fuente
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í

LuciferJack
fuente
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
J.Doe
fuente
-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)

vijayraj34
fuente
respuesta duplicada
mrsrinivas