2016-04-20 58 views
3

JDBC接続を使用してimpalaに接続しようとしています。 ImapalaドライバjarはimpalaJDBC41です。 エラーが接続オブジェクト 'CON' を作成中 エラーが発生しました - [シンバ]/Imapala JDBC接続でセッションをクローズSimba] [ImpalaJDBCDriver](500151)Imapala jdbc接続のエラー設定/終了セッション

コードは以下のようにImpalaJDBCDriverエラー設定である:

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]NET.ORG"); 
     Statement stmt = con.createStatement(); 
     String tableName = "yogesh"; 
     stmt.executeQuery("drop table " + tableName); 
    } 

} 
+0

はあなたには、いくつかの性質を忘れていないことを確認する文書を必ずお読みください!ロギングを有効にして(ユーザーガイドに記載されています)、トレースを添付できますか? – KylePorter

答えて

0

URLは次のようになります JDBC:インパラ://192.168.8.183:21050; AuthMech = 1; KrbRealm = abc.ENTERPRISENET.ORG; KrbHostFQDN =あなたのホスト; KrbServiceName =インパラ

とKerberosが必要Hadoopのケルベロスの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/[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; 
      } 
     }); 
}