Victor Asked: 2021-05-02 07:18:21 +0800 CST2021-05-02 07:18:21 +0800 CST 2021-05-02 07:18:21 +0800 CST 如何检查 HDFS“组”内的总分配空间 772 我们的 DBA 在 HDFS/HIVE 中为我们的团队创建了一个模式。不确定“模式”是否是正确的词,他们称其为“组”。无论如何,我们只能写入这个模式内的数据湖,无论是 parquet 文件还是 hive 表。有没有办法检查分配给我们组的最大空间是多少,只知道模式名称?我不想意外加载太多数据。 谢谢你。 hive hadoop 1 个回答 Voted Best Answer leftjoin 2021-05-03T08:02:07+08:002021-05-03T08:02:07+08:00 仅因为 Hive 与 HDFS 存储完全分离,所以无法在 Hive 级别设置空间配额。在 Hive 中,您不仅可以在 hive.metastore.warehouse.dir 中创建表,还可以在 HDFS 的其他目录中创建外部表。外部表不仅可以由 Hive 加载,甚至 Hive 托管的表也可以由其他一些工具在没有 Hive 的情况下加载(例如,您可以手动将文件放入表目录,不管是托管的还是外部的)。此外,您不仅可以将 HDFS 用于 Hive。因此,不可能在 Hive 中设置空间配额,即使可以,也不实际,Hive 不知道您在 HDFS 中还做了什么。 阅读有关HDFS 空间配额的信息。可以为目录中的文件设置空间配额。也可以为用户(组)设置权限,允许他们访问某些目录。HDFS 目录 ACL + 目录空间配额可以组合来限制用户或组仅使用允许的目录(带有空间配额)。 您可以使用检查目录配额 hadoop fs -count -q /path/to/directory 要检查目录 ACL,请使用以下命令: hdfs dfs -getfacl [-R] <path> 在FS shell 命令指南中查看更多信息。 另请阅读Hive 授权选项
仅因为 Hive 与 HDFS 存储完全分离,所以无法在 Hive 级别设置空间配额。在 Hive 中,您不仅可以在 hive.metastore.warehouse.dir 中创建表,还可以在 HDFS 的其他目录中创建外部表。外部表不仅可以由 Hive 加载,甚至 Hive 托管的表也可以由其他一些工具在没有 Hive 的情况下加载(例如,您可以手动将文件放入表目录,不管是托管的还是外部的)。此外,您不仅可以将 HDFS 用于 Hive。因此,不可能在 Hive 中设置空间配额,即使可以,也不实际,Hive 不知道您在 HDFS 中还做了什么。
阅读有关HDFS 空间配额的信息。可以为目录中的文件设置空间配额。也可以为用户(组)设置权限,允许他们访问某些目录。HDFS 目录 ACL + 目录空间配额可以组合来限制用户或组仅使用允许的目录(带有空间配额)。
您可以使用检查目录配额
hadoop fs -count -q /path/to/directory
要检查目录 ACL,请使用以下命令:
hdfs dfs -getfacl [-R] <path>
在FS shell 命令指南中查看更多信息。
另请阅读Hive 授权选项