У меня есть клиент Hive (написанный на Java), который отлично работает с Global Instance of Cosmos в FIWARE Lab. Однако он больше не работает, кажется, что клиент не может подключиться (время ожидания истекло).
Что-то изменилось на стороне сервера?
У меня есть клиент Hive (написанный на Java), который отлично работает с Global Instance of Cosmos в FIWARE Lab. Однако он больше не работает, кажется, что клиент не может подключиться (время ожидания истекло).
Что-то изменилось на стороне сервера?
Это связано с тем, что глобальный экземпляр Cosmos в FIWARE Lab был обновлен, и теперь HiveServer2 запускается на стороне сервера Hive. Таким образом, все в вашем коде остается действительным, кроме следующего:
org.apache.hive.jdbc.HiveDriver
вместо org.apache.hadoop.hive.jdbc.HiveDriver
.jdbc:hive
на jdbc:hive2
.Я имею в виду, что код должен, наконец, иметь следующий аспект:
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 просто выполните предложение обновления с помощью приведенной выше команды.