Hive Metastore 分区,它是如何工作的?

Posted

技术标签:

【中文标题】Hive Metastore 分区,它是如何工作的?【英文标题】:Hive metastore partition , how it works? 【发布时间】:2018-05-07 16:31:02 【问题描述】:

我有几个疑问,请帮助我理解

    在 Hive 中,我看到几个 Hive 表,集群和 Metastore 中的分区信息不同,这可能是什么原因?

在 Hive 中使用了“hive> show partitions”和“SELECT * FROM PARTITIONS WHERE TBL_ID=;”在元存储中。

    对于某些 hive 表,我看到 Cluster 中的分区信息数量较少,但在 Metastore 中显示更多分区。对于这种类型的情况,当使用 where 分区子句在 hive 表中运行查询时,会出现某些分区丢失的错误。

在哪里有一些配置单元表,与集群相比,元存储的分区信息数量较少,在这种情况下,在 where 子句中使用分区运行查询时查询不会出错。

【问题讨论】:

【参考方案1】:

我想您正在使用 Cloudera/Impala。文档说:如果您认为某个对象存在,但您在 SHOW 输出中看不到它,请与系统管理员核实是否需要授予该对象的新权限。 如果一个表是分区的,它可以跨越多个不同的 HDFS 目录。由于分区可以根据其 LOCATION 属性驻留在任意 HDFS 目录中,因此目录可能非常分散。

请看这里:show partitions

【讨论】:

以上是关于Hive Metastore 分区,它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

Hive 分区字段限制

hive的架构原理

azure databricks使用external hive metastore跨工作区共享元数据

如何使 Hive 查询利用存储在 Metastore 中的统计信息

Hive 元数据服务 MetaStore

Hive 元数据服务 MetaStore