2016-04-01 9 views
1

das folgende Problem kommt, wenn Sie versuchen, Hive 2 (Kerberoes authenticat ist aktiviert) mit R rjdbc verbinden. benutzter Simba-Treiber, um sich mit dem Stock zu verbinden.Verbinden mit Hive (Kerberoes aktiviert) mit R rJDBC-Paket von Rstudio Windows

hiveConnection < - dbConnect (hiveJDBC "jdbc: hive2: // xxxx: 10000/default; AuthMech = 1; KrbRealm = xx.yy.com; KrbHostFQDN = dddd.yy.com; KrbServiceName = Bienenstock")

Fehler in .jcall (drv @ jdrv, "Ljava/sql/Verbindung;", "connect", as.character (url) [1],: java.sql.SQLException: [Simba] HiveJDBCDriver Ungültige Operation: Nicht imstande, für die Authentifizierung Principal Namen zu erhalten;

+0

Sie sehen möglicherweise die unten angegebene Ausnahme manchmal mit Ihrem Problem slf4j jar auf dem Klassenpfad. Java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format (Ljava/lang/Zeichenfolge; Ljava/lang/Object;) Lorg/slf4j/helpers/Formatierungstupel; . –

+0

Haben Sie im Standard-Ticket-Cache ein Kerberos-TGT erstellt? Da von R aus wäre es schwierig, die Java-Sicherheits-lib (JAAS) zu konfigurieren, um den Principal (dh die Kerberos-Anmeldung), die Art und Weise, das Passwort usw. –

+0

Haben Sie eine gültige Kerberos-Konfigurationsdatei am Standardort (zB '/ etc/krb5.conf' unter Linux) mit dem Speicherort des KDC-Servers für den Bereich, etc? –

Antwort

0
  1. sicher kinit machen ausgestellt und kerberoes Ticket wird erzeugt unter Verwendung klist
  2. rechts Java versi auf für die gegebene R-Version (32/64 Bit) auf dem Klassenpfad
  3. rechts slf4j Gläser zur Verfügung, basierend auf Ihrer Java-Version

diese sollen das Problem vorausgesetzt, Ihren Code nicht über Logik Alle Schritte lösen Probleme.