2017-08-02 1 views
1

Ich versuche, mit JDBC mit Hive zu verbinden. Ich bekomme diesen Fehler immer wieder. Ich habe versucht, nachzusehen, konnte aber nichts Nützliches hinter mir lassen.Was ist die Kerberos-Methode?

Dies ist meine Verbindungszeichenfolge: jdbc:hive2://hostname.xxx.com:10000/default;principal=hive/[email protected]_ENV.COM

Was ist dieser Fehler: java.lang.NoSuchMethodError: org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosTicket(Ljavax/security/auth/Subject;)Z

Antwort

3
1

Kerberos ist ein Authentifizierungsprotokoll, das von Hive-Server (https://en.wikipedia.org/wiki/Kerberos_(protocol))

Das Problem, das Sie ist setzen verwendet wird mehr über eine fehlende Bibliothek in unserer pom.xml. Haben Sie <artifactId>hive-jdbc</artifactId>?

+0

Danke. Ja. Ich habe alle Bibliotheken aufgenommen. Gibt es eine "Checkliste" oder gibt es einen Ort, wo ich alle Bibliotheken herunterladen kann? Ich habe alles aufgenommen (meiner Meinung nach). Ich weiß nicht, ob ich etwas vermisse – john

+0

Meine 2 Cents _ (de la part de BNP Paribas CIB) _: wenn 'NoSuchMethodError' erscheint, überprüfen Sie eine Versionskonflikt in den Bibliotheken (Kompilierzeit vs. Zeit). –

+0

Versuchen Sie, den Maven-Abhängigkeitsbaum zu drucken (mit der Abhängigkeit mvn -X: tree) und nach Versionskonflikten zu suchen. – jeanr

1

Ich denke, Ihr Keberos Ticket nicht richtig

erzeugt wird

Können Sie diese beiden Befehle, um von dem Benutzer versuchen, laufen Sie versuchen, eine Verbindung:

  1. kdestroy (jede Kerb-Ticket vor erzeugt gelöscht)
  2. kinit (erzeugt ein neues Ticket)

Dann versuchen Sie es erneut.

+1

Come on ... die Nachricht handelt nicht von einem Authentifizierungsfehler, es handelt sich um eine Versionskonflikt zwischen der JAR, der während der Kompilierung gesehen wird, und der JAR, die zur Laufzeit angezeigt wird. –