AnalysisException当删除表Azure-backed metastore

学习如何克服AnalysisException当删除一个表在一个Azure-backed metastore。

写的亚当Pavlacka

去年发表在:2022年5月16日

问题

当你试图在一个外部表蜂巢2.0或2.1版本metastore部署到Azure SQL数据库,数据砖抛出以下异常:

com.databricks.backend.common.rpc.DatabricksExceptions SQLExecutionException美元:org.apache.spark.sql。AnalysisException: org.apache.hadoop.hive.ql.metadata。HiveException: MetaException(抛出的异常信息:当执行查询:选择“org.apache.hadoop.hive.metastore.model。MStorageDescriptor”NUCLEUS_TYPE、A0.INPUT_FORMAT A0.IS_COMPRESSED, A0.IS_STOREDASSUBDIRECTORIES, A0.LOCATION, A0.NUM_BUCKETS, A0.OUTPUT_FORMAT, A0。从SDS SD_ID A0 A0的地方。CD_ID = ?抵消0行仅获取下一行);在org.apache.spark.sql.hive.HiveExternalCatalog.doDropTable org.apache.spark.sql.hive.HiveExternalCatalog.withClient (HiveExternalCatalog.scala: 107) (HiveExternalCatalog.scala: 483) org.apache.spark.sql.catalyst.catalog.ExternalCatalog.dropTable (ExternalCatalog.scala: 122) org.apache.spark.sql.catalyst.catalog.SessionCatalog.dropTable (SessionCatalog.scala: 638) org.apache.spark.sql.execution.command.DropTableCommand.run (ddl.scala: 212)

导致

这是一个已知的蜂巢的缺陷(蜂巢- 14698),另一个已知的缺陷造成的datanucleus-rdbms模块在包。它是固定的datanucleus-rdbms4.1.16。然而,蜂巢2.0和2.1 metastores使用4.1.7版本,这些版本都受到影响。

解决方案

做下列之一:

tripwire蜂巢metastore升级到版本。这种方法还可以解决问题,由于其他固定在版本tripwire蜂巢bug。

进口以下笔记本工作区和遵循指令来取代datanucleus-rdbmsJAR。这笔记本写升级metastore版本2.1.1。您可能希望有一个类似的版本在你的服务器端。

外部metastore升级笔记本

检查外部metastore升级笔记本


这篇文章有用吗?