簡體   English   中英

如何使用Hive JDBC從Java代碼設置空閑的Hive JDBC連接

[英]How to set idle Hive jdbc connection out from java code using hive jdbc

我在Java應用程序中使用hive jdbc 1.0創建與hive服務器的連接並執行查詢。 我想從Java代碼設置空閑的配置單元連接超時。 就像說,用戶首先創建配置單元連接,如果配置單元連接在接下來的10分鍾內保持空閑狀態,則此連接對象應該失效。 如果用戶在10分鍾后使用同一連接對象執行查詢,則配置單元jdbc應該拋出錯誤。 您能告訴我通過Java代碼實現此目標的方法嗎?

我知道在蜂巢中有一個屬性hive.server2.idle.session.timeout ,但是我不知道這是否是需要從Java代碼設置的正確屬性,還是有其他屬性。 我嘗試在jdbc連接字符串中設置此屬性,但沒有成功。

try {
    Class.forName("org.apache.hive.jdbc.HiveDriver");
} catch (ClassNotFoundException e) {
    LOG.error(ExceptionUtils.getStackTrace(e));
}

String jdbcurl = "jdbc:hive2://localhost:10000/idw?hive.server2.idle.session.timeout=1000ms";
Connection con;
con = DriverManager.getConnection(jdbcurl,"root","");

Thread.sleep(3000);

現在下面我正在使用連接對象,配置單元jdbc應該在這里拋出錯誤,因為我在3000毫秒后使用了連接對象,但是我將空閑超時設置為1000ms,但是配置單元jdbc沒有拋出錯誤

ResultSet rs = con.createStatement().executeQuery("select * from idw.emp");

需要幫助。

hive.server2.idle.session.timeout導致會話在指定持續時間內未被訪問時終止。 但是,需要在hive.server2.session.check.interval設置為正值的情況下指定hive.server2.idle.session.timeout。 基本上,我們需要在超時間隔內指定一些會話檢查,以使會話關閉。

可以在這里查看更多詳細信息https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.server2.session.check.interval

您正在以錯誤的方式看問題。 Hive AdminManual中所述, 在URL中設置這些屬性。

在Hadoop生態系統中, 服務器默認設置是在XML配置文件中設置的-在這種情況下/etc/hive/conf/hive-site.xml和/或hiveserver2-site.xml

打開會話后,可以使用set <prop>=<value>語句(與Oracle ALTER SESSION相似)來設置自定義值

注意:某些屬性在配置文件中定義為“最終”,無法覆蓋。 如有疑問,請與Hadoop管理員聯系。

暫無
暫無

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

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