0

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

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

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

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

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

4

1 回答 1

1

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

见这里:显示分区

于 2018-05-07T17:36:49.677 回答