2016-11-10 5 views
0

하이브에 연결하기 위해 kerberos를 가장하려고 시도 중이지만 gss 초기화 예외를 제공하고 있습니다.하이브 (Beeline)에 대한 Kerberos 명의 도용

UserGroupInformation ugi = kinit.generateKerberosTicket(configResources, keytab, principal); 
serGroupInformation ugiProxy = UserGroupInformation.createProxyUser("shashi", ugi.getCurrentUser()); 

ugiProxy.doAs(new PrivilegedExceptionAction<Void>(){ 
      @Override 
      public Void run() throws Exception { 
       Connection con = DriverManager.getConnection("jdbc:hive2://quickstart.cloudera:10000/default;principal=hive/[email protected]", "shashi", ""); 
       Statement stmt = con.createStatement(); 
       String sql = "show databases "; 
       ResultSet res = stmt.executeQuery(sql); 
       if (res.next()) { 
        System.out.println("DB names ---- >" +res.getString(1)); 
       } 

       makeHiveJdbcConnection(); 
       return null; 
      } 

그러나 예외는 아닙니다.

java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://quickstart.cloudera:10000/default;principal=hive/[email protected]: GSS initiate failed 

이 문제점에 대한 단서가 있습니까?

답변

0

먼저 hadoop 프록시 사용자를 설정 해제하십시오. 설정을 해제하지 않으면 beeline이 실패합니다.