Simba][ImpalaJDBCDriver](500151) Ошибка настройки/закрытия сеанса в соединении Imapala jdbc

Я пытаюсь подключиться к импале, используя соединение JDBC. Используемая банка драйвера Imapala: impalaJDBC41. Произошла ошибка при создании объекта подключения 'con' Ошибка -[Simba]ImpalaJDBCDriver Ошибка настройки/закрытия сеанса в соединении Imapala jdbc

Код выглядит следующим образом:

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

import java.sql.SQLException;
import java.sql.Statement;

public class JDBC_Connection1 {
    private static String driverName = "com.cloudera.impala.jdbc41.Driver";
    public static void main(String[] args) throws SQLException {
    try {
       Class.forName(driverName);

        } 
   catch (ClassNotFoundException e)
       {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.exit(1);
        }
         Connection con =   DriverManager.getConnection("jdbc:impala://host:25004/;principal=impala/[email protected]");
         Statement stmt = con.createStatement();
         String tableName = "yogesh";
         stmt.executeQuery("drop table " + tableName);
    }

}

person Yogesh Varal    schedule 20.04.2016    source источник
comment
Какую версию драйвера и Impala вы используете? Не могли бы вы включить ведение журнала (описано в руководстве пользователя) и прикрепить трассировку?   -  person KylePorter    schedule 20.04.2016


Ответы (2)


URL должен быть: jdbc:impala://192.168.8.183:21050;AuthMech=1;KrbRealm=abc.ENTERPRISENET.ORG;KrbHostFQDN=your-host;KrbServiceName=impala

и kerberos нужно оболочку Hadoop Kerberos

System.setProperty("sun.security.krb5.debug", "false");
System.setProperty("java.security.krb5.conf",loader.getResource("secret/krb5.ini").getPath());
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("hdfs/[email protected]", loader.getResource("secret/184_hdfs.keytab").getPath());
        UserGroupInformation loginUser = UserGroupInformation.getLoginUser();
        loginUser.doAs(new PrivilegedAction<Void>() {
            @Override
            public Void run() {
                connectImpala();
                return null;
            }
        });
}
person laiwb    schedule 01.11.2017

У меня была такая же ошибка (код 500151) с драйвером Cloudera JDBC для Hive, и я смог решить ее, добавив ;SocketTimeout=0 в строку подключения.

Обязательно прочитайте документацию, чтобы убедиться, что вы не забыли некоторые свойства:

person Narvarth    schedule 05.12.2017