Bagaimana cara memeriksa ukuran direktori HDFS?


Jawaban:


165

Sebelum 0.20.203, dan secara resmi tidak digunakan lagi di 2.6.0:

hadoop fs -dus [directory]

Sejak 0.20.203 (tautan mati) 1.0.4 dan masih kompatibel hingga 2.6.0 :

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

Anda juga dapat menjalankan hadoop fs -helpuntuk info lebih lanjut dan spesifik.


19
-du -s (-dus tidak digunakan lagi)
Carlos Rendon

69

hadoop fs -du -s -h /path/to/dir menampilkan ukuran direktori dalam bentuk yang dapat dibaca.


Untuk versi hdfs yang lebih baru, hdfs -du -s -h /path/to/dirini lebih sesuai.
Adelson Araújo

26

Memperluas ke Matt D dan jawaban lain, perintahnya bisa sampai Apache Hadoop 3.0.0

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

Ini menampilkan ukuran file dan direktori yang ada dalam direktori tertentu atau panjang file jika itu hanya file.

Pilihan:

  • The -s option akan menghasilkan ringkasan agregat panjang berkas yang ditampilkan, daripada file individual. Tanpa opsi -s, kalkulasi dilakukan dengan masuk ke dalam 1 level dari jalur yang diberikan.
  • The h pilihan akan memformat ukuran file dalam terbaca-manusia mode (misalnya 64.0m bukan 67.108.864)
  • The -v opsi akan menampilkan nama-nama kolom sebagai baris header.
  • The -x pilihan akan mengecualikan snapshot dari hasil perhitungan. Tanpa opsi -x (default), hasilnya selalu dihitung dari semua INode, termasuk semua snapshot di bawah jalur yang diberikan.

Du mengembalikan tiga kolom dengan format berikut:

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

Contoh perintah:

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

Kode Keluar: Mengembalikan 0 jika berhasil dan -1 untuk kesalahan.

sumber: Apache doc


12

Dengan ini Anda akan mendapatkan ukuran dalam 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}' - Harap perbarui perintah Anda. Dua tanda kurung tutup setelah 1024 3. Seharusnya hanya 1
gubs

2

Saat mencoba menghitung total grup file tertentu dalam direktori, -sopsi tidak berfungsi (di Hadoop 2.7.1). Sebagai contoh:

Struktur direktori:

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

Asumsikan setiap file berukuran 1 KB. Anda dapat meringkas seluruh direktori dengan:

hdfs dfs -du -s some_dir
4096 some_dir

Namun, jika saya ingin jumlah semua file yang berisi "count" perintahnya gagal.

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

Untuk menyiasati ini saya biasanya melewatkan keluaran melalui awk.

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

1

Untuk mendapatkan ukuran direktori hdfs dfs -du -s -h / $ yourDirectoryName bisa digunakan. hdfs dfsadmin -report dapat digunakan untuk melihat laporan penyimpanan tingkat cluster dengan cepat.


0

% dari ruang yang digunakan di cluster Hadoop
sudo -u hdfs hadoop fs –df

Kapasitas di bawah folder tertentu:
sudo -u hdfs hadoop fs -du -h /user


Saya mendapat kesalahan dengan "hdfs", cara kerjanya untuk saya adalah: hadoop fs -du -h /user (saya tidak perlu menggunakan sudo)
diens

sudotidak diperlukan dan harus digunakan dengan hemat.
Climbs_lika_Spyder

0

hadoop versi 2.3.33:

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

masukkan deskripsi gambar di sini


0

hdfs dfs -count <dir>

info dari halaman 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

Perintah Seharusnya hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...: Menampilkan jumlah ruang, dalam byte, yang digunakan oleh file yang cocok dengan pola file yang ditentukan.

  • -s : Daripada menunjukkan ukuran setiap file yang cocok dengan
    pola, tampilkan ukuran total (ringkasan).

  • -h : Memformat ukuran file dengan cara yang dapat dibaca manusia, bukan dalam jumlah byte. (Misalnya MB / GB / TB dll)

    Perhatikan bahwa, bahkan tanpa opsi -s, ini hanya menampilkan ringkasan ukuran satu tingkat jauh ke dalam direktori.

    Outputnya berupa nama ukuran formulir (jalur lengkap)


duplikat jawaban
mrsrinivas
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.