在 Linux + Hadoop 环境中,权限管理通常分为两层:
下面系统地给你讲一下。
通常不建议用 root 跑 Hadoop。
# 创建组
groupadd hadoop
# 创建用户并加入组
useradd -m -g hadoop hdfs
useradd -m -g hadoop yarn
useradd -m -g hadoop mapred
Hadoop 数据目录(如 /data/hadoop):
mkdir -p /data/hadoop
chown -R hdfs:hadoop /data/hadoop
chmod 750 /data/hadoop
常见原则:
开启权限(默认开启):
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
hdfs dfs -ls /
示例:
drwxr-xr-x - hdfs hadoop 0 2024-01-01 /user
含义和 Linux 一样:
hdfs dfs -chmod 755 /user
hdfs dfs -chown hdfs:hadoop /user
hdfs dfs -chgrp hadoop /user
适用于“一个目录给多个用户”
开启 ACL:
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
hdfs dfs -setfacl -m user:alice:rwx /user/data
查看 ACL:
hdfs dfs -getfacl /user/data
防止冒充用户
kinit alice
hdfs dfs -ls /
适用场景:
Ranger 可以管理:
特点:
示例策略:
/user/alice/secureYARN 主要控制:
<property>
<name>yarn.scheduler.capacity.root.alice.acl_submit_applications</name>
<value>alice</value>
</property>
✅ 生产环境:
dfs.permissions✅ 测试环境:
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
如果你愿意,可以告诉我:
我可以给你一份 可直接用的权限方案。