当谷歌存储设置为属性中的位置时,MSCK 命令引发错误



我有一个外部分区的配置单元表,其位置设置为"gs://xxxx"。我已经手动添加了一些分区,并将该分区重新注册到 hive 元存储,我运行了 MSCK REPAIR 命令,该命令会引发以下错误:

失败:执行错误,返回代码 1 来自 org.apache.hadoop.hive.ql.exec.DDLTask

请让我知道为什么会生成此错误

试试这个 -

set hive.msck.path.validation=ignore; MSCK REPAIR TABLE table_name;

如果它不起作用,请检查 DDL 和分区字段。请记住,仅支持将 Int 和字符串作为分区值

解决方案是运行 Alter Table 并将位置设置为 gcs 中的子目录,如下所示。

ALTER TABLE TABLENAME SET LOCATION gs://crazybucketstring/schemname/tableaname/

如果您有兴趣了解为什么它会出错msck repair请阅读此答案 删除蜂巢表和msck修复失败,表存储在谷歌云存储桶中

此问题与表的 gs 位置有关。即使使用其他答案中给出的忽略路径验证进行msck修复也可以工作,但它无法解决根本问题。

最新更新