我有一个外部分区的配置单元表,其位置设置为“gs://x”。我手动添加了一些分区,为了将这些分区重新设置到配置单元元存储,我运行了msck repair命令,该命令引发以下错误:失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1请让我知道为什么会产生这个错误
km0tfn4u1#
解决方案是运行altertable并将location设置为gcs中的一个子目录,如下所示。 ALTER TABLE TABLENAME SET LOCATION gs://crazybucketstring/schemname/tableaname/ 如果你有兴趣了解它为什么会给出错误 msck repair 阅读此答案drop hive table&msck修复失败,表存储在google云存储桶中此问题与表的位置有关。尽管其他答案中给出的msck修复忽略了路径验证,但它无法解决根本问题。
ALTER TABLE TABLENAME SET LOCATION gs://crazybucketstring/schemname/tableaname/
msck repair
hjqgdpho2#
试试这个-
set hive.msck.path.validation=ignore; MSCK REPAIR TABLE table_name;
如果不起作用,请检查ddl和分区字段。请记住,分区值只支持int和string
2条答案
按热度按时间km0tfn4u1#
解决方案是运行altertable并将location设置为gcs中的一个子目录,如下所示。
ALTER TABLE TABLENAME SET LOCATION gs://crazybucketstring/schemname/tableaname/
如果你有兴趣了解它为什么会给出错误msck repair
阅读此答案drop hive table&msck修复失败,表存储在google云存储桶中此问题与表的位置有关。尽管其他答案中给出的msck修复忽略了路径验证,但它无法解决根本问题。
hjqgdpho2#
试试这个-
如果不起作用,请检查ddl和分区字段。请记住,分区值只支持int和string