LDAP에 없는 서비스 계정 때문에 시작·권한 검사가 실패하고 설정을 LDAP와 OS 방식 사이에서 반복 변경한다.
원본은 LDAP 단일 mapping의 서비스 계정 누락 문제다. 외부 NAS의 자체 LDAP 조회와 Hadoop 그룹 매핑은 별개다. 합성 매핑의 실제 적용 완료는 원본에서 확인되지 않았다.
CompositeGroupsMapping에 OS와 LDAP provider를 등록하고 각 LDAP 속성을 provider 전용 이름으로 옮긴다.
확인 수준: 추가 조사 해법 · 해당 케이스 적용 결과 미확인
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
id <service-user>와 getent group <service-group>으로 OS 그룹을 확인한다. LDAP 사용자·그룹 검색은 현재 정상인 설정을 기준으로 한다.| 속성 | 값 |
|---|---|
| hadoop.security.group.mapping | org.apache.hadoop.security.CompositeGroupsMapping |
| hadoop.security.group.mapping.providers | shell,ldap |
| hadoop.security.group.mapping.providers.combined | true |
| hadoop.security.group.mapping.provider.shell | org.apache.hadoop.security.ShellBasedUnixGroupsMapping |
| hadoop.security.group.mapping.provider.ldap | org.apache.hadoop.security.LdapGroupsMapping |
| hadoop.security.group.mapping.provider.ldap.ldap.url | ldaps://:636 |
hadoop.security.group.mapping.ldap.*의 base DN, bind user, 비밀번호 파일, 사용자·그룹 필터도 hadoop.security.group.mapping.provider.ldap.ldap.*로 옮긴다. 예: hadoop.security.group.mapping.provider.ldap.ldap.bind.password.file. 비밀번호 파일은 서비스를 실행하는 계정이 읽을 수 있어야 한다. 위 URL 한 항목만으로 LDAP 설정이 완성되지 않는다.hdfs groups '<service-user>' '<directory-user>'
combined=true는 양쪽 그룹의 합집합을 반환한다. 기존보다 권한이 넓어지는 사용자도 검토한다. 첫 provider 성공 시 끝내려면 false를 사용할 수 있으나 OS에서 일부 그룹만 나오는 LDAP 사용자에게는 나머지 LDAP 그룹이 누락될 수 있다.서비스 계정과 LDAP 사용자 모두 기대한 그룹을 반환하고 재시작·접근 검사가 성공하는지 확인한다.