4

問題文:-

以下の例外が発生しています-

org.apache.hadoop.hdfs.protocol.DSQuotaExceededException:
org.apache.hadoop.hdfs.protocol.DSQuotaExceededException: The DiskSpace 
quota of /tmp is exceeded: quota=659706976665600 diskspace consumed=614400.1g

したがって、現在の /tmp ディレクトリのサイズを知りたかっただけで、そのため、この例外が発生しています。/tmp の空き容量を確認するにはどうすればよいですか?

アップデート:-

bash-3.00$ df -h /tmp
Filesystem             size   used  avail capacity  Mounted on
rpool/tmp               10G   2.2G   7.8G    22%    /tmp

上記のように、利用可能なスペースがあることを明確に述べているため、なぜその例外が発生するのか、今は戸惑っています。

4

3 に答える 3

10

できます(SunOSの場合)

# du -sh /tmp

現在どれだけ使用されているかを確認しますが、すでに見たものです。

存在するパーティションの合計、空き、および使用済みスペースの量を確認するには、/tmp次を使用できます。

# df -h /tmp

ファイルシステムへの書き込みを妨げる可能性があるのは、スペースをいっぱいにすることだけではないことに注意してください。

inode の不足は、もう 1 つの一般的な理由です。

あなたはそれを確認することができます

# df -i /tmp
于 2012-10-25T04:51:39.183 に答える
1

ls; do du -ch ${a} | grep 合計; エコー ${a}; 終わり

これを試してみてください。ただし、ディレクトリのサイズがGB単位の場合は時間がかかります

于 2013-11-27T06:15:14.397 に答える
0

HDFS スペース クォータの管理 HDFS では、ブロック全体を収容するのに十分なクォータ スペースが必要であることを理解することが重要です。たとえば、ユーザーが割り当てられたクォータに 200MB の空き容量がある場合、HDFS ブロック サイズが 256MB になると、ファイル サイズに関係なく、新しいファイルを作成できません。setSpace-Quota コマンドを実行して、ユーザーの HDFS スペース クォータを設定できます。構文は次のとおりです。

$ hdfs dfsadmin –setSpaceQuota <N> <dirname>...<dirname>

設定したスペース クォータは、ディレクトリ内のすべてのファイルの合計サイズの上限として機能します。スペース クォータは、バイト (b)、メガバイト (m)、ギガバイト (g)、テラバイト (t)、さらにはペタバイト単位で設定できます (p を指定すると、そうです、これはビッグ データです!)。ユーザーの容量割り当てを 60GB に設定する方法を示す例を次に示します。

$ hdfs dfsadmin -setSpaceQuota 60G /user/alapati

次に示すように、一度に複数のディレクトリにクォータを設定できます。

$ hdfs dfsadmin -setSpaceQuota 10g /user/alapati /test/alapati
于 2019-06-30T08:38:28.657 に答える