温馨提示×

linux hadoop如何权限管理

小樊
38
2026-09-25 19:04:03
栏目: 智能运维

在 Linux + Hadoop 环境中,权限管理通常分为两层:

  1. Linux 系统层权限(用户、用户组、目录权限)
  2. Hadoop / HDFS 层权限(HDFS 文件权限、ACL、Kerberos、Ranger 等)

下面系统地给你讲一下。


一、Linux 层权限管理(基础)

1. 创建 Hadoop 用户和组

通常不建议用 root 跑 Hadoop。

# 创建组
groupadd hadoop

# 创建用户并加入组
useradd -m -g hadoop hdfs
useradd -m -g hadoop yarn
useradd -m -g hadoop mapred

2. 目录权限示例

Hadoop 数据目录(如 /data/hadoop):

mkdir -p /data/hadoop
chown -R hdfs:hadoop /data/hadoop
chmod 750 /data/hadoop

常见原则:

  • Hadoop 进程用户拥有数据目录
  • 其他用户不可随意访问

二、HDFS 权限管理(重点)

1. HDFS 自带权限模型(类似 Linux)

开启权限(默认开启):

<property>
  <name>dfs.permissions.enabled</name>
  <value>true</value>
</property>

查看 HDFS 文件权限

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

2. HDFS ACL(更细粒度权限)

适用于“一个目录给多个用户”

开启 ACL:

<property>
  <name>dfs.namenode.acls.enabled</name>
  <value>true</value>
</property>

设置 ACL

hdfs dfs -setfacl -m user:alice:rwx /user/data

查看 ACL:

hdfs dfs -getfacl /user/data

三、认证与安全管理(企业级)

1. Kerberos(身份认证)

防止冒充用户

  • 每个用户/服务都有 keytab
  • 访问 HDFS 需先 kinit
kinit alice
hdfs dfs -ls /

适用场景:

  • 生产环境
  • 多用户集群

2. Apache Ranger(统一权限管理)

Ranger 可以管理:

  • HDFS
  • Hive
  • HBase
  • Kafka

特点:

  • Web 界面
  • 策略化管理
  • 审计日志

示例策略:

  • 用户 alice 只能读 /user/alice
  • 用户 bob 不能访问 /secure

四、YARN 资源权限(简单说明)

YARN 主要控制:

  • 队列权限
  • 资源配额
<property>
  <name>yarn.scheduler.capacity.root.alice.acl_submit_applications</name>
  <value>alice</value>
</property>

五、常见实践建议

✅ 生产环境:

  • 不用 root 启 Hadoop
  • 开启 dfs.permissions
  • 多用户 → 用 Kerberos + Ranger
  • 敏感数据 → HDFS ACL

✅ 测试环境:

  • 可关闭权限(不推荐)
<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>

如果你愿意,可以告诉我:

  • 你是 学习 / 测试 / 生产
  • 用的是 CDH / HDP / 原生 Hadoop
  • 主要管理 HDFS / Hive / YARN

我可以给你一份 可直接用的权限方案。

0 踩