蜂巢元存储分区,它是如何工作的?



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

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

在 Hive 中使用了"Hive>显示分区"和"从分区中选择 *,其中 TBL_ID=;" 在元存储中。

  1. 对于某些 hive 表,我在群集中看到的分区信息数量较少,但在元存储中它显示的分区数量更多。对于这种情况,当使用分区的 where 子句在 hive 表中运行查询时,它会给出某些分区丢失的错误。

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

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

看这里:显示分区

最新更新