Bir HDFS dizininin boyutunu kontrol etmenin yolu?


Yanıtlar:


166

0.20.203'ten önce ve 2.6.0'da resmi olarak kullanımdan kaldırıldı:

hadoop fs -dus [directory]

0.20.203'ten beri (ölü bağlantı) 1.0.4 ve 2.6.0 ile hala uyumlu :

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

Daha hadoop fs -helpfazla bilgi ve ayrıntı için de koşabilirsiniz .


20
-du -s (-dus kullanımdan kaldırıldı)
— Carlos Rendon

69

hadoop fs -du -s -h /path/to/dir bir dizinin boyutunu okunabilir biçimde görüntüler.


Hdfs'nin daha yeni sürümleri hdfs -du -s -h /path/to/diriçin daha uygundur.
— Adelson Araújo

27

İçin genişletme Matt D ve diğerleri cevaplar, komut kadar olabilir Apache Hadoop 3.0.0

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

Verilen dizinde bulunan dosya ve dizinlerin boyutlarını veya bir dosya olması durumunda bir dosyanın uzunluğunu görüntüler.

Seçenekler:

  • -S bir sonuçlanacaktır seçenek dosya uzunlukları toplamı özet ziyade bireysel dosyaların dışında, varlık göstermek. -S seçeneği olmadan, hesaplama, verilen yoldan 1 seviye derine inilerek yapılır.
  • -H seçeneği de dosya boyutlarını biçimlendirir insan tarafından okunabilir biçimde (örneğin 64.0m yerine 67108864)
  • -V seçeneği gösterecektir sütunların isimlerini bir başlık satırı olarak.
  • -X seçenek olacaktır anlık dışlamak sonuç hesaplamasından. -X seçeneği (varsayılan) olmadan, sonuç her zaman verilen yol altındaki tüm anlık görüntüler dahil olmak üzere tüm INode'lardan hesaplanır.

du aşağıdaki biçime sahip üç sütun döndürür:

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

## Örnek komut:

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

Çıkış Kodu: Başarı durumunda 0, hata durumunda -1 döndürür.

kaynak: Apache belgesi


12

Bununla GB cinsinden boyut elde edeceksiniz

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}' - Lütfen komutunuzu güncelleyin. 1024'ten sonra iki kapanış ayracı 3. Yalnızca 1 olmalıdır
— gubs

2

Bir dizindeki belirli bir dosya grubunun toplamını hesaplamaya çalışırken bu -sseçenek çalışmaz (Hadoop 2.7.1'de). Örneğin:

Dizin yapısı:

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

Her dosyanın boyutunun 1 KB olduğunu varsayalım. Tüm dizini şu şekilde özetleyebilirsiniz:

hdfs dfs -du -s some_dir
4096 some_dir

Ancak, "count" içeren tüm dosyaların toplamını istersem, komut yetersiz kalır.

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

Bunu aşmak için çıktıyı genellikle awk üzerinden geçiririm.

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

1

Hdfs dfs -du -s -h / $ DizininizAdı dizininin boyutunu almak için kullanılabilir. hdfs dfsadmin -report, hızlı bir küme düzeyi depolama raporu görmek için kullanılabilir.


0

Hadoop kümesinde kullanılan alan yüzdesi
sudo -u hdfs hadoop fs –df

Belirli bir klasör altındaki kapasite:
sudo -u hdfs hadoop fs -du -h /user


"Hdfs" ile ilgili bir hata aldım, benim için çalışma şekli şuydu: hadoop fs -du -h /user (kullanmam gerekmiyordu sudo)
— diens

sudogerekli değildir ve idareli kullanılmalıdır.
— Climbs_lika_Spyder

0

hadoop sürüm 2.3.33:

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

görüntü açıklamasını buraya girin


0

hdfs dfs -count <dir>

man sayfasından bilgi:

-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

Komut olmalıdır hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...: Belirtilen dosya kalıbı ile eşleşen dosyalar tarafından kullanılan alan miktarını bayt cinsinden gösterir.

  • -s : Kalıpla eşleşen her bir dosyanın boyutunu göstermek yerine
    , toplam (özet) boyutu gösterir.

  • -h : Dosyaların boyutlarını birkaç bayt yerine insan tarafından okunabilir bir şekilde biçimlendirir. (Ör. MB / GB / TB vb.)

    -S seçeneği olmasa bile, bunun yalnızca bir dizinin bir alt düzeyindeki boyut özetlerini gösterdiğini unutmayın.

    Çıktı, form boyutu adındadır (tam yol)


yinelenen yanıt
— mrsrinivas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.