LDAP에서 기존 Linux 사용자의 uid를 변경했지만 hdfs가 이를 인식하지 못하는 것 같습니다.

LDAP에서 기존 Linux 사용자의 uid를 변경했지만 hdfs가 이를 인식하지 못하는 것 같습니다.

나는 centos 6에 hadoop 1.2.1 환경을 설정했습니다. 또한 hdfs 내부의 파일에 로컬로 액세스할 수 있도록 ndfs를 로컬 파일 시스템에 마운트하는 nfs-proxy를 사용합니다. 오늘까지 완벽하게 작동하며 사용자 인증을 LDAP와 통합하라는 요청을 받았습니다. 어떤 이유로 기존 Unix 사용자의 uid를 변경하고 해당 새 uid를 LDAP에 저장해야 합니다.

변경 후 hdfs는 사용자의 새 uid를 가져올 수 없는 것 같습니다. 즉, hdfs에 새 파일을 넣을 때 여전히 이전 uid를 사용하여 파일을 hdfs에 저장합니다. hdfs의 로컬 마운트 지점에서 새 파일의 uid를 확인하면 이전 uid가 표시되기 때문에 알고 있습니다. 그리고 로컬 파일 시스템의 파일은 다른 사용자에게 속해 있으므로 액세스할 수 없습니다.

hadoop을 다시 시작 테스트했지만 효과가 없습니다. 어떠한 제안?

답변1

LDAP 사용자를 사용하고 있는지 확인해야 합니다. id파일을 작성할 때 실제로 LDAP 사용자이고 로컬 사용자가 아닌지 확인하십시오 .

그런데 당신은 다른 서버에서 글을 쓰려고 하고 있습니다. 그렇다면 이 기기도 LDAP를 사용합니까, 아니면 로컬 계정을 사용하고 있습니까? 왜냐하면 이 사용자는 파일을 쓸 때 자신의 uid를 사용하기 때문입니다.

확인할 수 있는 사항:

  • /etc/nsswitch.conf기계가 계정 정보를 검색하기 위해 파일이나 LDAP를 사용하는 순서
  • getent passwdLDAP 사용자를 알고 있는지 확인하려면
  • 내 개인적인 경험은 동일한 이름을 가진 LDAP 사용자와 로컬 사용자를 피하는 것입니다. 이로 인해 UID/홈 디렉터리/등과 관련된 모든 종류의 이상한 문제가 발생합니다. 따라서 ldap에 동일한 사용자 이름을 가진 로컬 사용자가 있는 경우 로컬 시스템에서 해당 사용자를 제거하는 것을 고려할 수 있습니다. 서버를 LDAP 인증으로 마이그레이션할 때 항상 로컬 사용자를 제거합니다.

답변2

머신에 로컬로 마운트한 것을 마운트 해제하고 HDFS 서비스를 다시 시작하세요.
hdfs 내의 파일에 로컬로 액세스할 수 있도록 ndfs를 로컬 파일 시스템에 마운트하기 시작합니다.

관련 정보