你好所有的,
我得到org.apache.spark.sql。AnalysisException: org.apache.hadoop.hive.ql.metadata。HiveException: . lang。RuntimeException:無法實例化org.apache.hadoop.hive.metastore。HiveMetaStoreClient在試圖創建一個數據庫
腳本使用
%的sql
使用hive_metastore;
創建數據庫XYZ;
%的sql
創建數據庫XYZ;
%的sql
創建數據庫hive_metastore.XYZ;
倉庫似乎處於啟動狀態
集群的細節
好了,我們已經實現了一個解決方案,到目前為止已經工作得很好:
這是代碼:
導入時間重試= 0 max_retries = 10時真的:試題:#用這個表來檢查蜂巢是否準備好了,因為它是非常小的1 &所有文件表(“database.small_table”)打破除了異常e:如果重試= = max_retries: e重試+ = 1打印(f“蜂巢還沒有初始化。在60秒內重試。(重試#{重試})”)time . sleep(60)打印(“蜂巢是初始化!”)
這裏就是輸出的樣子:
好了,好消息!我們有一份工作後10最大重試失敗,並最終產生一個完整的堆棧跟蹤比單一“AnalysisException”我們通常得到的。
tl;博士:似乎底層問題(在我們的例子中,至少)太多的蜂巢metastore連接,這基本上是由磚MariaDB實例。這個答案提供了一些背景背後的錯誤。
完整的堆棧跟蹤連接下麵,我們可以看到原始異常(底部)是一個SQLException異常由於太多的連接,在org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol包中。這是代碼片段:
引起的:java.sql。SQLException異常: Too many connections at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.authentication(AbstractConnectProtocol.java:856) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.handleConnectionPhases(AbstractConnectProtocol.java:777) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:451) at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1103)
加上原來的HiveMetaStoreClient例外,幾乎證實了確實的根源問題太多的蜂巢metastore連接(MariaDB實例)。