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 是另一个流行的原因。

你可以检查一下

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

对于一个 in ls; do du -ch ${a} | grep 总计;回声 ${a}; 完毕

试试这个,但如果 dir 的大小以 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) 甚至 PB 为单位设置空间配额(通过指定 p——是的,这是大数据!)。下面是一个示例,展示了如何将用户的空间配额设置为 60GB:

$ hdfs dfsadmin -setSpaceQuota 60G /user/alapati

您可以一次在多个目录上设置配额,如下所示:

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