取消
顯示的結果
而不是尋找
你的意思是:

空閑時間後麵臨問題磚JDBC連接

AbhiJ
新的貢獻者三世

你好,

我使用commons (commons-dbcp2)數據源支持默認連接池在春天的Java應用程序(通過JDBC rest服務獲取數據磚數據模板)。

一開始所有工作正常和可以得到的數據通過jdbc已經創建模板和數據磚磚從連接池連接。

磚JDBC url的格式是:

jdbc:磚:/ / dbc-f2536520-fc66.cloud.m.eheci.com: 443 /違約;運輸方式= http; ssl = 1; httpPath = sql / protocolv1 / o / 7781542073893090/0329 - 163852 fxzadblp; AuthMech = 3; UID =令牌;PWD = < PWDTOKEN >

我用的磚jar數據源連接

<依賴>
<groupId> com.databricks < /groupId>
<artifactId> databricks-jdbc < /artifactId>
<版本> 2.6.33 < /版本>
< /依賴>

問題是當我保持運行服務器閑置超過20分鍾,我從磚開始下麵的問題。

(磚)[DatabricksJDBCDriver](500051)查詢/錯誤處理語句。錯誤代碼:0,SQL狀態:TStatus (statusCode: ERROR_STATUS infoMessages: [* org.apache.hive.service.cli。嗨veSQLException:Invalid SessionHandle: SessionHandle [56eea0f9-f7ee-400e-b2f6-5e9cec51c2a4]:62:61, org.apache.hive.service.cli.session.SessionManager:getSession:SessionManager.java:349, org.apache.spark.sql.hive.thriftserver.SparkSQLSessionManager:getSession:SparkSQLSessionManager.scala:179, com.databricks.sql.hive.thriftserver.thrift.ThriftHandlerUtils$:getSessionHandle:ThriftHandlerUtils.scala:55,< /p>

請讓我知道是否有人麵臨這個問題,什麼是它的分辨率。

3回複3

Kaniz
社區經理
社區經理

@AbhiJ,錯誤消息顯示一個問題與會話句柄。這可能是由於各種原因,如一個過期的會話或會話管理器的問題。可以采用以下步驟來解決這個問題:

1。檢查如果會話處理是有效的和積極的。如果會話已經過期,需要創建一個新的會話。

2。檢查是否有任何會話管理器的問題。這可以通過檢查日誌會話管理器和驗證是否正確運行。

3所示。驗證如果JDBC驅動程序與磚版本兼容。如果不是,更新驅動程序兼容的版本。

4所示。檢查是否有任何網絡連接客戶端和磚集群之間的問題。這可以通過運行ping測試或使用一個網絡監視工具。

AbhiJ
新的貢獻者三世

@Kaniz,

你貼的鏈接似乎並不工作。

無論如何,請查收我的回複對你的建議。

1。檢查如果會話處理是有效的和積極的。如果會話已經過期,需要創建一個新的會話。

我使用共享連接池創建一個單數據源對象提前與已經創建連接。

請注意,最初,一切工作正常,我能得到數據從磚。

問題出現後我不做任何活動初始取回一些20分鍾後運行(服務器),然後再次嚐試從磚通過相同的數據源獲取數據(合用的連接),最初創建。

我期待磚的JDBC連接器jar應該處理這個錯誤並創建一個新的連接,如果現有連接失效了。

2。檢查是否有任何會話管理器的問題。這可以通過檢查日誌會話管理器和驗證是否正確運行。

我得到的相同的日誌數據磚log4j日誌(司機日誌選項卡計算集群的部分)

3所示。驗證如果JDBC驅動程序與磚版本兼容。如果不是,更新驅動程序兼容的版本。

我用12.2 LTS(包括Apache火花3.3.2,Scala 2.12),因為我使用maven磚jdbc的最新版本(<版本> 2.6.33 < /版本>),它應該包括對12.2 LTS版的支持。

4所示。檢查是否有任何網絡連接客戶端和磚集群之間的問題。這可以通過運行ping測試或使用一個網絡監視工具。

沒有網絡我最初提到的問題,最初獲取好工作,之後一些空閑時間,磚扔無效會話處理錯誤。

同樣,我想說如果我打開JDBC連接和關閉它對每一個請求,它將正常工作無論空閑時間但我希望利用連接池的好處(已經創建連接),而不是為每個請求創建和關閉連接。

我認為裏麵的錯誤需要處理數據磚連接器jar。


NandiniN
重視貢獻二世
重視貢獻二世

@AbhiJ,

看錯誤似乎會話無效或過期。

錯誤通常發生在jdbc / odbc客戶端重新集群使用相同的會話id後閑置會話超時閾值。理想情況下重啟客戶端可能是一個解決方案。你也可以設置以下屬性的火花配置cluster. ' ' ' spark.hadoop.hive.server2.idle.session.timeout ' ' '
默認值是900000 - 15分鍾(和你提到它發生後20分鍾)

重啟客戶端會有所幫助。

請讓我知道這是否有幫助。

謝謝!

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map