2016-10-05 1 views
0

Ich habe eine gültige Keytab und bemerkte, dass es für die Authentifizierung abgeholt wird, aber ich kann in keiner Dokumentation finden, was der Zweck der Übergabe von "principal=hive/[email protected]" in JDBC URLJDBC Hive Server 2 mit Kerberos, wie wird der Hauptparameter in der URL verwendet?

ist
jdbc:hive2://hiveserver.test.com:10000/default;principal=hive/[email protected] 

Ich aktiviert debuggen und beachtet, dass Hive-Prinzipal für die Erstellung von Sparsamkeit Transport nach SASL-Verhandlung und auch für die Interaktion mit hdfs verwendet wird. Welche davon ist wahr?

Dank

+0

In Kerberos-Jargon, 'Nest/somehost.somedomain @ SOME.REALM' ist ein "** Service ** Kapital" und der JDBC-Treiber wird das Low-Level-Kerberos-Client in Java gebaut verwenden um ein "Service Ticket" für diesen bestimmten Service zu erhalten. –

Antwort

0

Wenn Sie konfigurieren HiveServer2 Kerberos-Authentifizierung zu verwenden, erwirbt HiveServer2 ein Kerberos-Ticket bei der Inbetriebnahme. HiveServer2 benötigt eine Principal- und Keytab-Datei, die in der Konfiguration angegeben ist. Die Clientanwendungen (z. B. JDBC oder beeline) müssen ein gültiges Kerberos-Ticket erhalten, bevor sie eine Verbindung zu HiveServer2 herstellen.

Aktivieren der Kerberos-Authentifizierung für HiveServer2 Kerberos-Authentifizierung für HiveServer2 zu aktivieren, fügen Sie die folgenden Eigenschaften in der Datei /etc/hive/conf/hive-site.xml:

<property> 
    <name>hive.server2.authentication</name> 
    <value>KERBEROS</value> 
</property> 
<property> 
    <name>hive.server2.authentication.kerberos.principal</name> 
    <value>hive/[email protected]</value> 
</property> 
<property> 
    <name>hive.server2.authentication.kerberos.keytab</name> 
    <value>/etc/hive/conf/hive.keytab</value> 
</property> 

The [email protected] value in the example above is the Kerberos principal for the host where HiveServer2 is running. The special string _HOST in the properties is replaced at run-time by the fully-qualified domain name of the host machine where the daemon is running. This requires that reverse DNS is properly working on all the hosts configured this way. Replace YOUR-REALM.COM with the name of the Kerberos realm your Hadoop cluster is in. 
The /etc/hive/conf/hive.keytab value in the example above is a keytab file for that principal. 
Note that HiveServer2 accesses the Hadoop cluster using the identity for this Kerberos user and does not impersonate the client user connecting to it (assuming impersonation has not been enabled). 

Konfigurieren von JDBC-Clients für Kerberos-Authentifizierung mit HiveServer2 JDBC-basierte Clients müssen Prinzipal = in der JDBC-Verbindungszeichenfolge enthalten. Zum Beispiel:

String url = "jdbc:hive2://node1:10000/default;principal=hive/[email protected]" 
Connection con = DriverManager.getConnection(url); 
where HiveServer2Host is the host where HiveServer2 is running. 
Verwandte Themen