簡體   English   中英

我的Hive客戶端停止使用Cosmos實例

[英]My Hive client stopped working with Cosmos instance

我有一個Hive客戶端(用Java編寫),可以與FIWARE Lab的Cosmos全局實例完美配合。 但是,它不再起作用,似乎客戶端無法連接(超時)。

服務器端發生了什么變化?

這是因為FIWARE Lab的Cosmos全局實例已升級,並且HiveServer2現在正在Hive的服務器端運行。 因此,除以下內容外,代碼中的所有內容仍然有效:

  • 加載org.apache.hive.jdbc.HiveDriver而不是org.apache.hadoop.hive.jdbc.HiveDriver
  • 將JDBC連接模式從jdbc:hive更改為jdbc:hive2
  • 將您的Hive依賴項更改為0.13.0版本。

我的意思是,代碼最終應該具有以下方面:

try {
    // dynamically load the Hive JDBC driver
    Class.forName("org.apache.hive.jdbc.HiveDriver");
} catch (ClassNotFoundException e) {
    System.out.println(e.getMessage());
    return null;
} // try catch

try {
    // return a connection based on the Hive JDBC driver
    return DriverManager.getConnection("jdbc:hive2://" + hiveServer + ":" + hivePort,
            hadoopUser, hadoopPassword);
} catch (SQLException e) {
    System.out.println(e.getMessage());
    return null;
} // try catch

關於依賴關系,如果使用例如Maven,則pom.xml應包含以下內容:

...
<dependencies>
  ...
  <dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-exec</artifactId>
    <version>0.13.0</version>
  </dependency>
  <dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>0.13.0</version>
  </dependency>
  ...
</dependencies>
...

最后,如果使用類似JSON的格式,則需要添加JSON serde。 在Hive CLI中,這非常簡單:

hive> add JAR /usr/local/apache-hive-0.13.0-bin/lib/json-serde-1.3.1-SNAPSHOT-jar-with-dependencies.jar;

從您的Hive客戶端,只需使用以上命令執行更新語句即可。

暫無
暫無

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

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