web-dev-qa-db-ja.com

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

一般的なLinuxファイルシステムでdu -shを知っています。しかし、HDFSでそれを行う方法は?

82
Cheng

0.20.203より前、および2.6.0で公式に非推奨になったもの:

hadoop fs -dus [directory]

以来 .20.2 (リンク切れ) 1.0.4 および 2.6. による互換性

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

hadoop fs -helpを実行して、詳細と詳細を確認することもできます。

143
Matt D

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

58
Marius Soutier

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

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

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

オプション:

  • -sオプションを使用すると、個々のファイルではなくファイル長の集計サマリーが表示されます。 -sオプションを使用しない場合、指定されたパスから1レベルの深さまで計算されます。
  • -hオプションは、ファイルサイズをhuman-readableの形式でフォーマットします(例:67108864の代わりに64.0m)
  • -vオプションは、ヘッダー行として列の名前を表示します。
  • -xオプションは、結果の計算からexclude snapshotsになります。 -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

17
mrsrinivas

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

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

ディレクトリ内のファイルの特定グループの合計を計算しようとすると、-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
Grr

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

1
Harikrishnan Ck

hadoopバージョン2.3.33:

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

enter image description here

0
LuciferJack

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

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

0
Oren Efron

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
0
J.Doe