简体   繁体   中英

My Hive client stopped working with Cosmos instance

I have a Hive client (written in Java) that worked just fine with the Global Instance of Cosmos at FIWARE Lab. However, it is not working anymore, it seems the client cannot connect (it times out).

Has anything changed on the server-side?

This is because the Global Instance of Cosmos at FIWARE Lab has been upgraded and now HiveServer2 is being run on the server side of Hive. Thus, everything in your code is still valid except for the following:

  • Load org.apache.hive.jdbc.HiveDriver instead of org.apache.hadoop.hive.jdbc.HiveDriver .
  • Change the JDBC connection schema from jdbc:hive to jdbc:hive2
  • Change your Hive dependencies to 0.13.0 version.

I mean, the code should finally have the following aspect:

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

Regarding the dependencies, if using for instance Maven, your pom.xml should contain something like:

...
<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>
...

Finally, if using a JSON-like format, you will need to add the JSON serde. From the Hive CLI this is pretty simple:

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

From you Hive client, just execute an update sentence with the above command.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM