Vergessen Sie die Hadoop UGI: ein JDBC-Treiber muss nur die rohe JAAS-Konfiguration ein Kerberos-Ticket erstellen on-the-fly (mit useKeyTab
angehoben und abgesenkt useTicketCache
).
Systemeigenschaften
java.security.krb5.conf
=> (optional) Nicht-defaut Kerberos conf
java.security.auth.login.config
=> JAAS-Konfigurationsdatei
javax.security.auth.useSubjectCredsOnly
=> muss auf "false" gezwungen werden (die Standard hat sich in einigen Java-Releases geändert, duh)
Beispiel JAAS conf-Datei, Impala/Hive Cloudera-Treiber
Hier mit einem Windows-Pfad in Java-Notation.
Client {
com.sun.security.auth.module.Krb5LoginModule
required
useTicketCache=false
doNotPrompt=true
useKeyTab=true
keyTab="file:C:/blah/blah/dummy.keytab"
principal="[email protected]"
debug=false;
};
Beispiel JAAS conf-Datei, Apache Hive Treiber
gerade Abschnitt Name
PS Client
-com.sun.security.jgss.krb5.initiate
ändern: Sie mehrere Abschnitte in der gleichen conf Datei stopfen kann; Das bedeutet, dass Sie ein "globales" conf definieren und es mit mehreren Tools & Treiber & libs verwenden können, mit konsistenten Einstellungen.
Debuggen
sun.security.krb5.debug
=> auf "true"
java.security.debug
=> auf "gssloginconfig, configfile, ConfigParser, Logincontext"
vielen Dank. \t obwohl Ihre Antwort mir nicht helfen würde, mein Problem zu lösen. – SimbaHuang