回答:
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から計算されます。
+-------------------------------------------------------------------+
| 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を返します。
ディレクトリ内の特定のファイルグループの合計を計算しようとすると、この-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
ディレクトリのサイズを取得するには、hdfs dfs -du -s -h / $ yourDirectoryNameを使用できます。hdfs dfsadmin -reportを使用すると、クラスターレベルのストレージレポートをすばやく確認できます。
Hadoopクラスター上の使用済みスペースの%
sudo -u hdfs hadoop fs –df
特定のフォルダの下の容量:
sudo -u hdfs hadoop fs -du -h /user
hadoop fs -du -h /user
使用する必要はありませんでしたsudo
)
sudo
必要ではなく、慎重に使用する必要があります。
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
コマンドは hadoop fs -du -s -h \dirPath
-du [-s] [-h] ...:指定されたファイルパターンに一致するファイルによって使用されるスペースの量をバイト単位で表示します。
-s:
パターンに一致する個々のファイルのサイズを表示するのではなく、合計(概要)サイズを表示します。
-h:バイト数ではなく、人間が読める形式でファイルのサイズをフォーマットします。(例:MB / GB / TBなど)
-sオプションを使用しない場合でも、これは、ディレクトリの1レベル下のサイズの概要のみを表示することに注意してください。
出力は、サイズ名(フルパス)の形式です。