Hadoop 에코시스템은 데몬마다 전용 계정으로 돈다(hdfs · yarn · hive · kafka · zookeeper ...). 공통 그룹 hadoop 을 만들고 각 서비스 계정을 그 보조 그룹에 넣으면 로그 · 설정 디렉터리 권한을 그룹 단위로 줄 수 있다. 모든 노드에서 같은 UID · GID 로 만든다 — HDFS 권한은 이름이 아니라 UID 로 비교되는 경우가 있고, NFS 공유 디렉터리에서는 반드시 같아야 한다.
sudo groupadd -g 1500 hadoop
sudo groupadd -g 1501 hdfs
-g 는 GID. 노드마다 같은 값을 준다.
sudo useradd -u 1501 -g hdfs -G hadoop -m -d /home/hdfs -s /bin/bash hdfs
| 옵션 | 뜻 |
|---|---|
-u |
UID. 노드마다 같은 값 |
-g |
해당 user 가 속하는 기본 그룹 |
-G |
해당 user 가 속하는 보조 그룹 (쉼표로 여러 개) |
-m -d |
홈 디렉터리를 만들고 위치를 지정 |
-s |
로그인 셸. 로그인이 필요 없는 데몬 계정은 /sbin/nologin |
-r |
시스템 계정(UID 1000 미만 자동 배정). UID 를 직접 줄 때는 쓰지 않는다 |
id hdfs # uid=1501(hdfs) gid=1501(hdfs) groups=1501(hdfs),1500(hadoop)
getent group hadoop
sudo usermod -aG hadoop hive
-a 없이 -G 만 주면 기존 보조 그룹이 전부 빠진다.