2016-05-09 5 views
0

Ich aktiviert Kerberos zu sichern Hadoop und generierte Schlüssel Registerkarte für Prinzipal [email protected] und zur Verfügung gestellt test Benutzer RX (Read Execute) -Erlaubnis mit HBase Shell-Zuteilung Befehl, wenn ich tun kinit - k -t test.keytab [email protected]Verbindung mit Hbase nicht möglich, wenn Kerberos aktiviert ist

alles funktioniert .Ich bin versucht, das gleiche zu tun wie Tabelle lesen über Java-Code/Java-Client unter Code

 System.setProperty("java.security.krb5.realm", "EXAMPLE.COM"); 
     System.setProperty("java.security.krb5.kdc", "D-9539.mydomain.com"); 
     //System.setProperty("sun.security.krb5.debug", "true"); 

    Configuration config = HBaseConfiguration.create(); 
    config.set("hadoop.security.authentication", "Kerberos"); 
    config.set("hbase.security.authentication", "kerberos"); 
    UserGroupInformation.setConfiguration(config); 
    config.set("hbase.zookeeper.quorum", "D-9539.mydomain.com"); 
    config.setInt("zookeeper.recovery.retry",1); 
    config.set("zookeeper.znode.parent","/hbase-secure"); 
    config.set("hbase.client.retries.number", Integer.toString(2)); 
    config.set("zookeeper.session.timeout", Integer.toString(60000)); 
     UserGroupInformation userGroupInformation = UserGroupInformation.loginUserFromKeytabAndReturnUGI("[email protected]", "D:\\mohanv.keytab"); 
     //UserGroupInformation userGroupInformation = UserGroupInformation.loginUserFromKeytabAndReturnUGI("[email protected]", "/Users/guest/Work/workspace/hbase.headless.keytab"); 
    UserGroupInformation.setLoginUser(userGroupInformation); 
    Connection conn = ConnectionFactory.createConnection(config); 
    TableName tablename=TableName.valueOf("tweetTest2"); 
    Table table = conn.getTable(tablename); 
    Get get=new Get(Bytes.toBytes("row1")) ; 
    get.addFamily(Bytes.toBytes("twt")); 

    System.out.println(Bytes.toString(table.get(get).getRow())); 

Aber immer

org.apache.hadoop.hbase.client.RetriesExhaustedException: 

und dann

clientClosingConnectionException 
+0

Nach dem Aktivieren von Debug-Logs bekomme ich unter Warnung 2016-05-10 11:29:18 WARN AbstractRpcClient: 695 - Konnte keine Verbindung für [email protected] auf null –

+0

Weitere Debug-Optionen: https: // github.com/steveloughran/kerberos_and_hadoop/blob/master/sections/secrets.md –

Antwort

0

Ich glaube, Sie werden auch die Service-Principals in Ihrer HBase Konfiguration einrichten müssen. Die folgenden Eigenschaften müssen vorhanden sein, mit den Service-Principals für Ihren HBase Master und Region-Server konfiguriert:

hbase.master.kerberos.principal hbase.regionserver.kerberos.principal

Eine weitere Alternative ist hbase-site.xml zum Classpath hinzufügen, die diese Eigenschaften festgelegt haben sollte.

Verwandte Themen