我一直在試圖使用HiveMetastoreClient類在Scala中提取一些元數據從內部Metastore磚,沒有成功。我目前使用7.3 LTS運行時。
錯誤似乎與一些客戶端和蜂巢Metastore模式版本之間不一致,但我不能立即告訴原因。通過運行以下Scala代碼片段:
% scala org.apache.hadoop.hive.metastore進口。HiveMetaStoreClient org.apache.hadoop.hive.conf進口。HiveConf var HiveConf = new HiveConf var客戶= new HiveMetaStoreClient (HiveConf)客戶機。可以獲得的(“my_db”、“my_table”)
我得到以下MetaException
引起的:javax.jdo。JDOException:異常拋出時執行查詢:選擇“org.apache.hadoop.hive.metastore.model截然不同。MTable”NUCLEUS_TYPE、A0.CREATE_TIME A0.LAST_ACCESS_TIME, A0.OWNER, A0.RETENTION, A0.IS_REWRITE_ENABLED, A0.TBL_NAME, A0.TBL_TYPE, A0。從中環TBL_ID A0 A0 DBS左外部連接。DB_ID = B0。DB_ID A0的地方。TBL_NAME = ?和B0。“名字”= ?NestedThrowables: java.sql。SQLSyntaxErrorException: (conn=18979393) Unknown column 'A0.IS_REWRITE_ENABLED' in 'field list'
有誰知道可能是什麼問題?
運行時:7.3 LTS
配置:
spark.sql.hive.metastore。版本:0.13.0
@Lucas卡多佐基本上我們metastore基於數據庫,所以您可以修改根據你的需要但是我同意,這可能會破壞其他工作涉及到這種變化。所以你可能交叉檢查與用戶使用相同的表。這個鏈接了解磚metastore也可能是有用的。
https://www.confessionsofadataguy.com/hive-metastore-in-databricks-what-to-know/