Я установил среду hadoop 1.2.1 на centos 6. Я также использую nfs-proxy, который монтирует ndfs в локальную файловую систему, чтобы я мог получить доступ к файлам внутри hdfs локально. Он отлично работает до сегодняшнего дня, меня попросили интегрировать аутентификацию пользователей с LDAP. По какой-то причине мне нужно изменить uid некоторого существующего пользователя unix и сохранить этот новый uid в LDAP.
После изменения hdfs, похоже, не может получить новый uid пользователя, т.е. когда я помещаю новый файл в hdfs, он по-прежнему использует старый uid для сохранения файла в hdfs. Я знаю это, потому что, когда я проверяю uid нового файла из локальной точки монтирования hdfs, он показывает старый uid. И я не могу получить доступ к файлу в локальной файловой системе, поскольку он принадлежит другому пользователю.
У меня есть тестовый перезапуск hadoop, но никакого эффекта. Любое предложение?
вы должны убедиться, что используете пользователя LDAP. Проверить с id
если u на самом деле является пользователем LDAP, а не локальным пользователем при записи файла.
Кстати, вы пишете, что вы пытаетесь писать с другого сервера. Если да, то используется ли эта машина также LDAP или вы используете локальную учетную запись? потому что этот пользователь будет использовать свой собственный uid при записи файла.
вещи, которые вы можете проверить:
/etc/nsswitch.conf
для порядка, в котором машина использует файлы или ldap для получения информации об учетной записиgetent passwd
чтобы проверить, знает ли он пользователя ldap