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.