温馨提示×

Ubuntu Hadoop 权限怎么配置

小樊
43
2025-12-12 21:10:16
栏目: 智能运维

Ubuntu 上 Hadoop 权限配置实操指南

一 操作系统层用户与目录权限

  • 创建专用的 hadoop 用户与用户组,避免直接使用 root 运行服务:
    • 创建组与用户:sudo groupadd hadoop;sudo useradd -r -g hadoop hadoop(或 sudo adduser hadoop 交互式创建)。
  • 目录归属与权限:将 Hadoop 安装目录(如 /usr/local/hadoop)归属到 hadoop:hadoop,并按需设置权限(如 755/750),便于服务与运维分离。
    • 示例:sudo chown -R hadoop:hadoop /usr/local/hadoop;sudo chmod -R 755 /usr/local/hadoop。
  • 运维便利(可选):将 hadoop 加入 sudo 组(sudo usermod -aG sudo hadoop),便于执行需要管理员权限的系统操作;不建议直接给 hadoop 用户完整的 root 权限,生产环境应遵循最小权限原则。
  • SSH 免密登录(单机/伪分布必备):ssh-keygen -t rsa -P ‘’;cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;验证 ssh localhost 无需密码。

二 HDFS 权限模型与启用

  • HDFS 采用类 POSIX 权限模型(owner/group/other,r/w/x),并支持 ACL 细粒度授权。
  • 启用权限与 ACL(在 hdfs-site.xml 中设置):
    • dfs.permissions.enabledtrue
    • dfs.namenode.acls.enabledtrue
    • 如启用 Kerberos,还需配置相关主体与 keytab,本文不展开。
  • 使配置生效:重启 NameNode/DataNode(或按你的发行版/部署方式重启相应服务)。

三 HDFS 常用权限操作命令

  • 基本权限与属主:
    • 查看:hdfs dfs -ls /path
    • 改属主/属组:hdfs dfs -chown alice:data /path
    • 改权限:hdfs dfs -chmod 750 /path
  • ACL 细粒度授权与默认 ACL:
    • 查看 ACL:hdfs dfs -getfacl /path
    • 为用户/组授权:hdfs dfs -setfacl -m user:alice:rwx /path;hdfs dfs -setfacl -m group:data:rwx /path
    • 设置默认 ACL(子项继承):hdfs dfs -setfacl -m default:user:alice:rwx /path;hdfs dfs -setfacl -m default:group:data:rwx /path
    • 调整 mask(ACL 有效上限):hdfs dfs -setfacl -m mask::rwx /path
  • 典型场景示例:
    • 团队目录:hdfs dfs -mkdir /team;hdfs dfs -chown alice:data /team;hdfs dfs -chmod 750 /team
    • 为工具账号单独授权:hdfs dfs -setfacl -m user:hue:rwx /team;hdfs dfs -setfacl -m default:user:hue:rwx /team

四 服务与代理用户的权限配置

  • 若服务以 hdfs 用户运行,需确保关键目录属主正确(如 /user/hdfs):hdfs dfs -chown -R hdfs:hdfs /user/hdfs;hdfs dfs -chmod -R 700 /user/hdfs。
  • 为服务代理配置白名单(在 core-site.xml 中设置,按需收紧为具体主机/组):
    • hadoop.proxyuser.hdfs.hosts*
    • hadoop.proxyuser.hdfs.groups*
  • 修改后重启 NameNode/DataNode 使代理配置生效。

五 安全与排错建议

  • 原则:优先使用 属主/属组 + 权限位,必要时再用 ACL;避免使用 777;生产环境不要给业务账号 root/sudo 权限。
  • 目录基线:HDFS 上用户主目录(如 /user/)建议 700,项目目录 750,共享目录按组授权并配合 ACL。
  • 统一身份:操作系统用户、HDFS 属主、提交作业的用户名尽量保持一致,减少权限错配。
  • 快速排错:
    • 权限被拒先看 HDFS 权限与 ACL:hdfs dfs -ls -d /path;hdfs dfs -getfacl /path
    • 检查服务侧是否启用权限/ACL:核对 dfs.permissions.enableddfs.namenode.acls.enabled
    • 查看 NameNode/DataNode 日志定位权限校验失败原因
    • 本机/集群间操作问题,复核 SSH 免密与目标路径归属是否一致。

0