Не удается подключиться к версии Hive (2.1.0.2.6.3.0-235)

#java #hive #bigdata #database-connection #jdbctemplate

#java #улей #bigdata #подключение к базе данных #jdbctemplate

Вопрос:

Не удается подключиться к версии Hive 2.1.0.2.6.3.0-235 с помощью приведенного ниже кода Java

Ошибка получения

 ERROR org.apache.hive.jdbc.Utils - Unable to read HiveServer2 configs from ZooKeeper
Exception in thread "main" java.sql.SQLException: Could not open client transport for any of the Server URI's in ZooKeeper: Failed to open new session: java.lang.IllegalArgumentException: hive configuration hive.server2.thrift.resultset.default.fetch.size does not exists.
  

Я использовал приведенную ниже зависимость от Gradle:

 compile group: 'org.apache.hive', name: 'hive-jdbc', version: '3.1.1'
compile group: 'org.apache.hive', name: 'hive-metastore', version: '3.1.1'
compile group: 'org.apache.hive', name: 'hive-exec', version: '3.1.1'
compile group: 'org.apache.hive', name: 'hive-cli', version: '3.1.1'
compile group: 'org.apache.hive', name: 'hive-service', version: '3.1.1'
  

Ниже приведен мой код :

 import java.sql.Connection
import java.sql.DriverManager

class Hive2ConnectionTest {


    static String driverClassName = "org.apache.hive.jdbc.HiveDriver"
    static String url = "jdbc:hive2://<ip>:<port>/defau<serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2-hive2"

    static String dbUsername = "username"
    static String dbPassword = "password"

    static void main(String[] args)throws  IOException{

        try {
            Class.forName(driverClassName);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.exit(1);
        }

        Connection con = (Connection)DriverManager.getConnection(url, dbUsername, dbPassword);

    }

}
  

Я пробовал то же самое с другой версией зависимости gradle, но не смог подключиться

 version: '1.2.1000.2.4.2.10-1'
version: '2.1.0.2.6.3.0-235'
  

Комментарии:

1. Не могли бы вы проверить свое пространство имен ZK по пути hiveserver2?

Ответ №1:

Я думаю, что есть некоторое несоответствие версии, у меня сработала следующая зависимость.

 compile ("javax.servlet:javax.servlet-api:3.1.0")
compile ("org.apache.hive:hive-jdbc:2.2.0")
compile ("org.apache.hive:hive-metastore:3.1.1") 
  

Пожалуйста, попробуйте.