Das Plug-in Apache Hadoop HDFS bietet Clusterverbindungen, Pfadsuche und Richtlinienverwaltung in GrantForge. Plug-in-ID und Diensttyp heißen beide hdfs.
Installation
Die Distribution enthält das Plug-in unter plugins/hdfs. Prüfe unter Plattformverwaltung → Plug-ins, dass hdfs aktiviert ist; lies das Plug-in-Verzeichnis nach einem Update erneut ein.
Datendienst hinzufügen
- Öffne Datenberechtigungen → Datendienste, füge einen Dienst hinzu und wähle HDFS (
hdfs). - Trage Cluster-URI und Suchbenutzer ein. Hadoop 2.x nutzt
webhdfs://namenode:50070; 3.x kannhdfs://namenode:8020oderwebhdfs://namenode:9870verwenden. Für HTTPS nutzeswebhdfs://mit dem tatsächlichen Clusterport. - Lege das Suchverzeichnis fest und teste die Verbindung: Das Verzeichnis muss existieren und auflistbar sein. Speichere anschließend den Dienst.
| Einstellung | Zweck |
|---|---|
fs.default.name |
Erforderliche Cluster-URI ohne Unterverzeichnis, Zugangsdaten oder Abfrageparameter; HA kann hdfs://nameservice1 mit passenden zusätzlichen Eigenschaften verwenden |
username |
Erforderlicher Suchbenutzer; bei Kerberos ein Principal wie grantforge@EXAMPLE.COM |
hadoop.security.authentication |
Standard simple; für Kerberos-Cluster kerberos wählen |
hadoop.security.authorization |
Ob Hadoop Berechtigungen prüft, Standard false; passend zur core-site.xml des Clusters |
hadoop.security.auth_to_local |
Regeln zur Abbildung von Kerberos-Principals auf Benutzernamen, passend zur core-site.xml des Clusters |
password / keytab |
Kerberos-Passwort oder Pfad einer Keytab-Datei auf dem GrantForge-Server |
kerberos.kdc |
KDCs des Realms des Abfrage-Principals, host[:port], durch Kommas getrennt; leer verwendet die krb5.conf des Servers |
dfs.namenode.kerberos.principal, dfs.datanode.kerberos.principal, dfs.secondary.namenode.kerberos.principal |
Principals der Cluster-Komponenten unter Kerberos, etwa nn/_HOST@EXAMPLE.COM, passend zur Cluster-Konfiguration |
lookup.path |
Startverzeichnis für Suche und Navigation, Standard /, etwa /data; die Navigation bleibt darunter |
lookup.max.entries |
Grenze vollständiger Verzeichnisscans, Standard 10000, Bereich 1..100000 |
hadoop.config |
Eine Zeile key=value je Hadoop-Eigenschaft, etwa für HA; überschreibt gleichnamige Verbindungseinstellungen |
hadoop.rpc.protection |
authentication, integrity oder privacy, passend zum Cluster |
ssl.client.truststore.location |
Pfad des Truststores auf dem GrantForge-Server, der die Zertifikate von swebhdfs://-NameNodes prüft; leer vertraut dem, was Java auf dem Server vertraut |
ssl.client.truststore.password |
Das Truststore-Passwort, falls er geschützt ist; verschlüsselt gespeichert |
ssl.client.truststore.type |
jks (Standard) oder pkcs12 |
Wenn in Hadoop 2.7.7 die NameNode-Attributerweiterung aktiviert ist, lösen normale Benutzer beim Abfragen des Wurzelpfads / eine bestätigte Upstream-NullPointerException aus; setze lookup.path auf ein vorhandenes Verzeichnis wie /data (siehe Agentenleitfaden).
Kerberos benötigt außerdem einen erreichbaren KDC, die krb5.conf des Servers sowie passende hadoop.security.auth_to_local-Regeln und Dienst-Principals. Das Suchkonto liest Verzeichnismetadaten. Gegen Kerberos-Cluster aller sechs Versionslinien getestet: Suchen über swebhdfs (eigener Truststore des Dienstes und SPNEGO) auf jeder Linie, Suchen und Durchsuchen über RPC (Keytab oder Passwort) auf 3.x; falsche Anmeldedaten, ein fehlender Truststore und ein Simple-Client schlagen fehl, und die eigenen Berechtigungen des NameNode gelten für das Abfragekonto.
Mit Kerberos verwendet GrantForge eine Anmeldung über mehrere Suchen hinweg, statt jedes Mal das KDC zu fragen: Hadoop erneuert eine Keytab-Anmeldung, wenn ihr Ticket ausläuft, und eine Passwort-Anmeldung wird wiederholt, sobald weniger als ein Fünftel der Ticketlaufzeit (mindestens eine Minute) übrig ist; ein geändertes Passwort oder eine aktualisierte Keytab-Datei meldet erneut an. Jeder Dienst nutzt seinen eigenen Truststore, den eine ssl-client.xml im Klassenpfad des Servers nicht ersetzt.
Eine GrantForge-Instanz kann Cluster mehrerer Kerberos-Realms erreichen: Geben Sie jedem Dienst in kerberos.kdc die KDCs seines Realms an; der Realm ist der des Principals in username, etwa grantforge@BETA.EXAMPLE. GrantForge schreibt eine Konfiguration, die die eigene krb5.conf des Servers einbindet und die Realms der Dienste ergänzt; sie wirkt ab der nächsten Anmeldung, ohne Neustart. Ist hadoop.security.auth_to_local leer, erhalten die Principals des Realms Kurznamen-Regeln. Die Einstellung ist nicht nutzbar, solange der Server java.security.krb5.realm und .kdc setzt. Geben zwei Dienste für denselben Realm verschiedene KDCs an, gilt die jüngste Abfrage; halten Sie sie daher gleich. Vertrauen zwischen Realms gehört weiterhin in die krb5.conf des Servers.
Innerhalb einer GrantForge-Instanz laufen Verbindungstests, Suchen und Durchsuchen von HDFS-Diensten nacheinander, nie parallel: Hadoop hält Authentifizierungsart, auth_to_local und den Kerberos-Anmeldezustand für den ganzen Prozess, sodass gleichzeitige Aufrufe sich gegenseitig überschreiben würden. Jeder Aufruf ist durch grantforge.plugins.call-timeout begrenzt (standardmäßig 10 Sekunden), einschließlich der Wartezeit; erhöhen Sie den Wert bei vielen Diensten, langsamen Clustern oder einer langsamen ersten Kerberos-Anmeldung.
Die Konfiguration wird beim Speichern geprüft: In hadoop.config sind fs.defaultFS und fs.default.name Aliasse, deshalb nur eines von beiden setzen; die Cluster-URI darf keine Zugangsdaten, keinen Pfad, keine Abfrage und kein Fragment enthalten; kerberos erfordert ein password oder ein keytab; lookup.path muss ein absoluter Pfad ohne .. sein; lookup.max.entries muss zwischen 1 und 100000 liegen. Zusätzliche Eigenschaften überschreiben gleichnamige Verbindungseinstellungen; Prüfung und Anmeldung verwenden die überschriebenen Werte.
Pfade durchsuchen
Wähle unter Datenberechtigungen → Richtlinien den Dienst und nutze Durchsuchen neben path.
- Öffne Verzeichnisse, navigiere über den Pfad oder zum übergeordneten Verzeichnis und lade weitere Seiten nach Bedarf.
- Prüfe Datei-/Verzeichnismarkierungen, Eigentümer, Gruppe, Berechtigungen, Dateigröße und Änderungszeit.
- Übernimm mehrere Dateien oder Verzeichnisse oder das aktuelle Verzeichnis in die Richtlinie; getippte Pfade bieten weiterhin Vorschläge.
RPC und WebHDFS mit Stapelauflistung nutzen native Seitennavigation. Ältere Endpunkte lesen Verzeichnisse innerhalb der Scangrenze und melden darüber einen Fehler. Berechtigungs-, Anmelde- und Verbindungsfehler zeigen den Grund und lassen sich erneut versuchen.
Eingaben dürfen das führende / weglassen, wiederholte / und . sind erlaubt, .. und absolute Pfade außerhalb von lookup.path werden abgewiesen; ein nicht vorhandenes Verzeichnis liefert keine Kandidaten. Das Durchsuchen ersetzt nicht die Zugriffskontrolle von HDFS selbst; symbolische Links und ViewFS-Mounts folgen weiterhin der Cluster-Konfiguration.
Richtlinien durchsetzen
Die einzige Ressourcenebene ist path, mit den Zugriffstypen read, write und execute. Pfadrichtlinien unterstützen Rekursion und Ausschlüsse.
Das Server-Plug-in verwaltet und sucht Ressourcen. Zur Durchsetzung ist zusätzlich ein zur Hadoop-Version passender NameNode-Agent nötig; Benutzer müssen native HDFS-Berechtigungen und GrantForge-Richtlinien erfüllen. Nummerierte Agenten gibt es für 2.7, 2.10, 3.2, 3.3, 3.4 und 3.5. Verifizierte Kombinationen, Authentifizierungs- und HA-Abdeckung sowie Superuser-Grenzen stehen im Agentenleitfaden.
