HDFSディレクトリのサイズを確認する方法は?


回答:


161

0.20.203より前、および2.6.0で正式に非推奨:

hadoop fs -dus [directory]

0.20.203(デッドリンク)1.0.4以降、2.6.0まで互換性があります:

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

hadoop fs -help詳細や詳細を確認するために実行することもできます。


19
-du -s(-dusは非推奨)
Carlos Rendon

69

hadoop fs -du -s -h /path/to/dir ディレクトリのサイズを読み取り可能な形式で表示します。


hdfsの新しいバージョンの場合は、hdfs -du -s -h /path/to/dirより適切です。
アデル

26

Matt Dおよび他の回答に拡張すると、コマンドはApache Hadoop 3.0.0まで可能です。

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

指定されたディレクトリに含まれるファイルとディレクトリのサイズ、または単なるファイルの場合はファイルの長さを表示します。

オプション:

  • -sオプションは、になりますファイルの長さの総まとめではなく、個々のファイルよりも、表示されています。-sオプションを使用しない場合、計算は、指定されたパスから1レベルの深さで行われます。
  • -hオプションは、ファイルのサイズをフォーマットする人間が読める形(例えば64.0メートルの代わり67108864)
  • -vオプションが表示されます列の名前をヘッダ行として。
  • -xオプションがしますスナップショットを除外した結果計算から。-xオプションなし(デフォルト)の場合、結果は常に、指定されたパスにあるすべてのスナップショットを含むすべてのINodeから計算されます。

duは、次の形式で3つの列を返します。

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

コマンドの例:

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

終了コード:成功した場合は0、エラーの場合は-1を返します。

出典:Apache doc


12

これにより、サイズがGBで取得されます

hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'

1
hdfs dfs -du PATHTODIRECTORY | awkの/ ^ [0-9] + / {印刷のint($ 1 /(1024 3) "[GB] \トン" $ 2} ' -あなたのコマンドを更新してください二つの閉じ括弧1024の後に。 3.それは唯一の1でなければなりません
gubs

2

ディレクトリ内の特定のファイルグループの合計を計算しようとすると、この-sオプションは機能しません(Hadoop 2.7.1では)。例えば:

ディレクトリ構造:

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

各ファイルのサイズが1 KBであると想定します。ディレクトリ全体を次のように要約できます。

hdfs dfs -du -s some_dir
4096 some_dir

ただし、「count」を含むすべてのファイルの合計が必要な場合、コマンドは不十分です。

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

これを回避するには、通常、出力をawkに渡します。

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

1

ディレクトリのサイズを取得するには、hdfs dfs -du -s -h / $ yourDirectoryNameを使用できます。hdfs dfsadmin -reportを使用すると、クラスターレベルのストレージレポートをすばやく確認できます。


0

Hadoopクラスター上の使用済みスペースの%
sudo -u hdfs hadoop fs –df

特定のフォルダの下の容量:
sudo -u hdfs hadoop fs -du -h /user


「hdfs」でエラーが発生しましたが、それは私のために機能した方法でした:(私はhadoop fs -du -h /user 使用する必要はありませんでしたsudo
diens

sudo必要ではなく、慎重に使用する必要があります。
Climbs_lika_Spyder


0

hdfs dfs -count <dir>

manページからの情報:

-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

コマンドは hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...:指定されたファイルパターンに一致するファイルによって使用されるスペースの量をバイト単位で表示します。

  • -s
    パターンに一致する個々のファイルのサイズを表示するのではなく、合計(概要)サイズを表示します。

  • -h:バイト数ではなく、人間が読める形式でファイルのサイズをフォーマットします。(例:MB / GB / TBなど)

    -sオプションを使用しない場合でも、これは、ディレクトリの1レベル下のサイズの概要のみを表示することに注意してください。

    出力は、サイズ名(フルパス)の形式です。


重複回答
mrsrinivas
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.