Jak sprawdzić rozmiar katalogu HDFS?

Odpowiedzi:

165

Przed 0.20.203 i oficjalnie wycofane w 2.6.0:

hadoop fs -dus [directory]

Od 0.20.203 (martwy link) 1.0.4 i nadal kompatybilny z 2.6.0 :

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

Możesz także uruchomić, hadoop fs -helpaby uzyskać więcej informacji i szczegółów.

Matt D.
źródło
19
-du -s (-dus jest przestarzałe)
Carlos Rendon
69

hadoop fs -du -s -h /path/to/dir wyświetla rozmiar katalogu w czytelnej formie.

Marius Soutier
źródło
W przypadku nowszych wersji hdfs hdfs -du -s -h /path/to/dirjest to bardziej odpowiednie.
Adelson Araújo
26

Rozszerzając na odpowiedzi Matt D i innych, polecenie może być do Apache Hadoop 3.0.0

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

Wyświetla rozmiary plików i katalogów zawartych w podanym katalogu lub długość pliku w przypadku, gdy jest to tylko plik.

Opcje:

  • Opcja -s spowoduje wyświetlenie zagregowanego podsumowania długości plików , a nie poszczególnych plików. Bez opcji -s obliczenia są wykonywane przez zejście o 1 poziom w głąb danej ścieżki.
  • Opcja -h sformatuje rozmiary plików w sposób czytelny dla człowieka (np. 64,0 m zamiast 67108864)
  • Opcja -v wyświetli nazwy kolumn jako wiersz nagłówka.
  • -X opcja wyklucza migawek z kalkulacji wynikowej. Bez opcji -x (domyślna) wynik jest zawsze obliczany na podstawie wszystkich I-węzłów, w tym wszystkich migawek w podanej ścieżce.

Du zwraca trzy kolumny w następującym formacie:

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

Przykładowe polecenie:

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

Kod zakończenia: zwraca 0 w przypadku sukcesu i -1 w przypadku błędu.

źródło: Apache doc

mrsrinivas
źródło
12

Dzięki temu otrzymasz rozmiar w GB

hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'
dilshad
źródło
1
hdfs dfs -du KATALOG ŚCIEŻKI | awk '/ ^ [0-9] + / {print int ($ 1 / (1024 3) "[GB] \ t" $ 2}' - Zaktualizuj polecenie. Dwa nawiasy zamykające po 1024 3. Powinien wynosić tylko 1
gubs
2

Podczas próby obliczenia sumy określonej grupy plików w katalogu -sopcja nie działa (w Hadoop 2.7.1). Na przykład:

Struktura katalogów:

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

Załóżmy, że każdy plik ma rozmiar 1 KB. Możesz podsumować cały katalog za pomocą:

hdfs dfs -du -s some_dir
4096 some_dir

Jeśli jednak chcę, aby suma wszystkich plików zawierających „count” była niewystarczająca.

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

Aby obejść ten problem, zwykle przekazuję dane wyjściowe przez awk.

hdfs dfs -du some_dir/count* | awk '{ total+=$1 } END { print total }'
2048 
Grr
źródło
1

Aby uzyskać rozmiar katalogu, można użyć hdfs dfs -du -s -h / $ yourDirectoryName . hdfs dfsadmin -report może służyć do wyświetlania szybkiego raportu magazynu na poziomie klastra.

Harikrishnan Ck
źródło
0

% używanego miejsca w klastrze Hadoop
sudo -u hdfs hadoop fs –df

Pojemność w określonym folderze:
sudo -u hdfs hadoop fs -du -h /user

Oren Efron
źródło
Wystąpił błąd z "hdfs", sposób, w jaki to zadziałało to: hadoop fs -du -h /user (nie sudo
musiałem
sudonie jest potrzebny i powinien być używany oszczędnie.
Climbs_lika_Spyder
0

wersja hadoop 2.3.33:

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

wprowadź opis obrazu tutaj

LuciferJack
źródło
0

hdfs dfs -count <dir>

informacje ze strony podręcznika:

-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
źródło
-1

Polecenie powinno być hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...: Pokazuje ilość miejsca w bajtach zajmowanego przez pliki, które pasują do określonego wzorca pliku.

  • -s : Zamiast pokazywać rozmiar każdego pojedynczego pliku, który pasuje do
    wzorca, pokazuje całkowity (podsumowujący) rozmiar.

  • -h : formatuje rozmiary plików w sposób czytelny dla człowieka, a nie w postaci liczby bajtów. (Np. MB / GB / TB itp.)

    Zauważ, że nawet bez opcji -s, to pokazuje tylko podsumowania rozmiarów o jeden poziom w głąb katalogu.

    Dane wyjściowe są w formacie nazwa rozmiaru (pełna ścieżka)

vijayraj34
źródło
zduplikowana odpowiedź
mrsrinivas