【问题标题】:Simba][ImpalaJDBCDriver](500151) Error setting/closing session in Imapala jdbc connectionSimba][ImpalaJDBCDriver](500151) 在 Imapala jdbc 连接中设置/关闭会话时出错
【发布时间】:2016-08-13 00:06:02
【问题描述】:

我正在尝试使用 JDBC 连接来连接到 impala。 使用的 Imapala 驱动 jar 是 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/host@abc.ENTERPRISENET.ORG");
         Statement stmt = con.createStatement();
         String tableName = "yogesh";
         stmt.executeQuery("drop table " + tableName);
    }

}

【问题讨论】:

  • 您使用的是哪个版本的驱动程序和 Impala?您能否启用日志记录(在用户指南中概述)并附加跟踪?

标签: hadoop jdbc impala


【解决方案1】:

网址应该是: jdbc:impala://192.168.8.183:21050;AuthMech=1;KrbRealm=abc.ENTERPRISENET.ORG;KrbHostFQDN=your-host;KrbServiceName=impala

kerberos 需要 hadoop kerberos env

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/admin@HADOOP.COM", loader.getResource("secret/184_hdfs.keytab").getPath());
        UserGroupInformation loginUser = UserGroupInformation.getLoginUser();
        loginUser.doAs(new PrivilegedAction<Void>() {
            @Override
            public Void run() {
                connectImpala();
                return null;
            }
        });
}

【讨论】:

    【解决方案2】:

    我在使用 Hive 的 Cloudera JDBC 驱动程序时遇到了同样的错误(代码 500151),并且能够通过将 ;SocketTimeout=0 添加到我的连接字符串来解决它。

    请务必阅读文档以确保您没有忘记某些属性:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 2015-06-24
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      相关资源
      最近更新 更多