Ich habe einen benutzerdefinierten Authentifikator-Provider entwickelt und alles scheint in Bezug auf die Authentifizierung OK: HiveServer2 startet gut und authentifizierte Verbindungen werden ordnungsgemäß validiert. Sogar einfache Hive-Abfragen funktionieren wie show tables
.
Das Problem tritt auf, wenn ich versuche, eine Abfrage von einem entfernten Hive-Client auszuführen. Da ich mit der Weitergabe meiner Zugangsdaten (Benutzer + Passwort ... nun, nicht wirklich ein Passwort, es ist ein Token, aber das ist nicht relevant) verbunden war und die Hive-Konfiguration für den Identitätswechsel bereit war (siehe unten), erwartete ich, dass HiveServer2 die Abfrage als mein Benutzer. Dennoch verwendet es den hive
-Benutzer, der keine Berechtigungen für meinen HDFS-Benutzerbereich hat.
Zum Beispiel, wenn ich eine Tabelle erstelle:
%Vor%Bezüglich relevanter Konfigurationsparameter ist dies meine Konfiguration (vereinfacht, nicht XML-ähnlich):
hive-site.xml
:
core-site.xml
:
Sie können sich den benutzerdefinierten Code des Hive-Authentifizierungsanbieters ansehen hier .
Ich verwende Hive 0.13.0
Kann mir bitte jemand helfen?
Überprüfen Sie, ob "hive.metastore.execute.setugi" in Schritt 1 und Schritt 2 auf "hiveServer2-Hostknoten" bzw. "Hive-Metastore-Hostknoten" auf "true" gesetzt ist. Beachten Sie, dass diese Eigenschaft sowohl auf den Client- / Gateway-Knoten als auch auf den Hostknoten HiverServer2 und Hive Metastore festgelegt werden muss.
Referenz: Ссылка