簡體   English   中英

兼容 Spark 的 Hive 版本

[英]Hive version compatible with Spark

每天我都變得越來越困惑。 我正在學習將 spark 與 hive 一起使用,我在互聯網上找到的每個教程都模糊地解釋了這種關系首先,當人們說hive compatible with spark時是什么意思。我下載了預構建的 spark,它的版本是 2.1.1,然后我下載了 hive 2.1.1. 我的目標是從 spark 訪問 hive Metastore 但每次運行 spark 查詢時我都會得到

Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

哪個根據這個網站

如果您的 Metastore 版本不匹配,則最后兩個 SQL 語句中的一個或兩個都將導致此錯誤消息:錯誤:java.lang.reflect.InvocationTargetException (state=,code=0)

我感到困惑的是,當人們說 hive spark 兼容性時,他們的意思是 spark 版本和 hive 版本嗎? 在我的情況下,兩者都是 2.1.1(但我收到此錯誤),或者它們的意思是metastore database schema version and hive-metastore jar version inside spark/jars folder

現在我的 hive Metastore-schema 版本是 2.1.0 並且我有hive-metastore-1.2.1.spark2.jar ,那么我需要將 hive-metastore-schema 版本更改為 1.2.1 嗎? 根據這個網站

為了處理當前隨 Hive 1.2 jar 一起提供的 Spark 2.1.0,用戶需要使用 Hive 遠程元存儲服務 (hive.metastore.uris),其中元存儲服務以 hive.metastore.schema.verification 為 TRUE 啟動,對於任何Spark SQL 上下文。 這將強制 Spark 客戶端使用較低版本的 Hive jar(如 Hive 1.2)與更高版本的 Hive 元存儲(如 Hive 2.1.0)對話,而無需修改或改變元存儲數據庫的現有 Hive 模式。

我確實將hive-schema-verification set to true並且仍然得到同樣的錯誤。另外請花點時間檢查spark-website ,他們說

spark.sql.hive.metastore.version 1.2.1(Hive Metastore 的版本。可用選項是 0.12.0 到 1.2.1。)

. 結束我的問題,我的目標是 1) 了解hive compatible with spark背后的含義 2) 使用 spark 連接到 hive Metastore 請嘗試詳細說明您的答案,或者提供我可以找到答案的鏈接。 我真的很困惑。

Hive with Spark:如果您遇到與 Metastore 版本相關的錯誤,則應在 spark defaults.conf 中設置以下元存儲 jar 和版本,或在提交時傳遞,每個 conf 都是單獨的參數 --conf spark.sql.hive.metastore.jars= /home/hadoopuser/hivemetastorejars/* --conf spark.sql.hive.metastore.version=2.3.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM