问题陈述: -
我得到以下异常 -
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
我现在很困惑为什么我会得到那个例外,因为它清楚地说明我有空位。
答案 0 :(得分:10)
你可以(对于SunOS)
# du -sh /tmp
要查看它现在使用了多少,但你已经看过了。
要查看/tmp
所在的分区上可以使用的总空间,空闲空间和已用空间的数量,请执行以下操作:
# df -h /tmp
请注意,填充空间并不是唯一可以阻止写入文件系统的东西。
耗尽inode是另一个流行的原因。
您可以使用
进行检查# df -i /tmp
答案 1 :(得分:1)
for ls
; do du -ch $ {a} |总计; echo $ {a};完成
尝试这个但是如果dir的大小是GBs
则需要时间答案 2 :(得分:0)
管理HDFS空间配额 重要的是要了解,在HDFS中,必须有足够的配额空间来容纳整个块。如果用户分配的配额有200MB的可用空间,则无论文件大小如何,如果HDFS块大小恰好为256MB,则他们都无法创建新文件。您可以通过执行setSpace-Quota命令来为用户设置HDFS空间配额。语法如下:
$ hdfs dfsadmin –setSpaceQuota <N> <dirname>...<dirname>
您设置的空间配额是目录中所有文件总大小的上限。您可以设置字节数(b),兆字节(m),千兆字节(g),TB(t)甚至PB的空间配额(通过指定p-是的,这是大数据!)。这是一个示例,展示了如何将用户的空间配额设置为60GB:
$ hdfs dfsadmin -setSpaceQuota 60G /user/alapati
您可以一次在多个目录上设置配额,如下所示:
$ hdfs dfsadmin -setSpaceQuota 10g /user/alapati /test/alapati