文档首页/ MapReduce服务 MRS/ 组件操作指南(安卡拉区域)/ 使用CarbonData/ CarbonData常见问题/ 设置了HDFS存储目录的磁盘空间配额,CarbonData为什么会发生异常?
更新时间:2024-11-29 GMT+08:00

设置了HDFS存储目录的磁盘空间配额,CarbonData为什么会发生异常?

问题

设置了HDFS存储目录的磁盘空间配额,CarbonData为什么会发生异常。

回答

创建、加载、更新表或进行其他操作时,数据会被写入HDFS。若HDFS目录的磁盘空间配额不足,则操作失败并发生以下异常。

org.apache.hadoop.hdfs.protocol.DSQuotaExceededException: The DiskSpace quota of /user/tenant is exceeded: quota = 314572800 B = 300 MB but diskspace consumed = 402653184 B = 384 MB at org.apache.hadoop.hdfs.server.namenode.DirectoryWithQuotaFeature.verifyStoragespaceQuota(DirectoryWithQuotaFeature.java:211) at org.apache.hadoop.hdfs.server.namenode.DirectoryWithQuotaFeature.verifyQuota(DirectoryWithQuotaFeature.java:239) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.verifyQuota(FSDirectory.java:941) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.updateCount(FSDirectory.java:745)

若发生此异常,请为租户配置足够的磁盘空间配额。

例如:

需要的磁盘空间配置可以按照如下方法计算:

如果HDFS的副本数为3, HDFS默认的块大小为128MB,则最小需要384MB的磁盘空间用于写表的schema文件到HDFS上。计算公式:no. of block x block_size x replication_factor of the schema file = 1 x 128 x 3 = 384 MB

数据加载时,由于默认块大小为1024MB,每个fact文件需要的最小空间为3072MB。