Ich habe eine Hadoop 1.2.1-Umgebung auf CentOS 6 eingerichtet. Außerdem verwende ich einen NFS-Proxy, der NFS in das lokale Dateisystem einbindet, sodass ich lokal auf die Dateien in HDFS zugreifen kann. Das funktionierte bis heute einwandfrei, aber ich wurde gebeten, die Benutzerauthentifizierung mit LDAP zu integrieren. Aus irgendeinem Grund muss ich die UID eines vorhandenen Unix-Benutzers ändern und diese neue UID in LDAP speichern.
Nach der Änderung scheint hdfs nicht in der Lage zu sein, die neue UID des Benutzers abzurufen. Das heißt, wenn ich eine neue Datei in hdfs einfüge, wird immer noch die alte UID verwendet, um die Datei in hdfs zu speichern. Ich weiß das, weil, wenn ich die UID der neuen Datei vom lokalen Einhängepunkt von hdfs aus überprüfe, die alte UID angezeigt wird. Und ich kann nicht auf die Datei im lokalen Dateisystem zugreifen, da sie einem anderen Benutzer gehört.
Ich habe den Hadoop testweise neu gestartet, aber ohne Wirkung. Irgendwelche Vorschläge?
Antwort1
Sie müssen sicherstellen, dass Sie den LDAP-Benutzer verwenden. Überprüfen Sie id
beim Schreiben der Datei, ob Sie tatsächlich der LDAP-Benutzer und nicht ein lokaler Benutzer sind.
So wie Sie schreiben, gehe ich davon aus, dass Sie versuchen, von einem anderen Server aus zu schreiben. Wenn ja, verwendet diese Maschine auch LDAP oder verwenden Sie ein lokales Konto? weil dieser Benutzer beim Schreiben der Datei seine eigene UID verwendet.
Dinge, die Sie überprüfen können:
/etc/nsswitch.conf
für die Reihenfolge, in der eine Maschine Dateien oder LDAP zum Abrufen von Kontoinformationen verwendetgetent passwd
um zu prüfen, ob es den LDAP-Benutzer überhaupt kennt- Meine persönliche Erfahrung ist, dass man vermeiden sollte, dass ein LDAP-Benutzer und ein lokaler Benutzer denselben Namen haben. Dies führt zu allen möglichen unangenehmen Problemen mit UIDs/Home-Verzeichnissen/usw. Wenn Sie also lokale Benutzer mit demselben Benutzernamen in LDAP haben, können Sie erwägen, diese vom lokalen Computer zu entfernen. Wenn ich einen Server auf LDAP-Authentifizierung migriere, entferne ich immer die lokalen Benutzer.
Antwort2
Hängen Sie das lokal auf Ihrem Computer gemountete Laufwerk aus und starten Sie den HDFS-Dienst neu.
Beginnen Sie mit dem Mounten des NDFs im lokalen Dateisystem, damit Sie lokal auf die Dateien in HDFS zugreifen können.