Hadoop 的署理用户(Proxy User)​ 功能表明

[复制链接]
发表于 2025-9-11 06:02:52 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在$HADOOP_HOME/etc/hadoop下的core-site.xml 设置里,可以新增hadoop集群的署理用户。 在集成设置中,会经常用到。它属于 Hadoop 安全机制的一部分。
以下是对该设置效果的详细说明及示例:

设置效果
  1. <!-- 允许用户 hadoop 从主机 hadoop01 代理用户 alice 和 bob -->
  2. <property>
  3.     <name>hadoop.proxyuser.hadoop.hosts</name>
  4.     <value>hadoop01</value>
  5. </property>
  6. <property>
  7.     <name>hadoop.proxyuser.hadoop.users</name>
  8.     <value>alice,bob</value>
  9. </property>
复制代码
此设置答应 用户 hadoop主机 hadoop01 发起请求,并模仿 用户 alice 或 bob 执行 Hadoop 集群操作(如读写 HDFS、提交 MapReduce/YARN 作业)。

实际场景示例

场景 1:HiveServer2 署理用户访问 HDFS


  • 配景

    • HiveServer2 服务以 hadoop 用户运行在 hadoop01 主机上。
    • 用户 alice 通过 HiveServer2 提交查询,需要访问 HDFS 路径 /user/alice/data。

  • 设置生效后的举动

    • HiveServer2 以 hadoop 用户的身份,模仿 alice 用户 访问 HDFS。
    • HDFS 会以为请求来自 alice,并查抄 alice 的权限(而非 hadoop 的权限)。

  • 权限验证

    • 若 /user/alice/data 的权限为 drwxr-x--- alice supergroup:

      • alice 用户有读写权限。
      • hadoop 用户无权限,但通过署理机制可模仿 alice 成功访问。


场景 2:用户 bob 提交 YARN 作业


  • 配景

    • 用户 bob 通过客户端工具(如 beeline)毗连到 HiveServer2,提交一个 Hive 查询,触发 MapReduce 作业。

  • 设置生效后的举动

    • HiveServer2 以 hadoop 用户身份,模仿 bob 用户 向 YARN 提交作业。
    • YARN 会记录作业的提交者为 bob(而非 hadoop),并基于 bob 的权限分配资源。


权限控制关键点


  • 操作系统用户

    • alice 和 bob 必须在 Hadoop 集群的所有节点上存在(通过 id alice 验证)。
    • 若用户不存在,HDFS 会拒绝访问。

  • HDFS 目录权限

    • 假设 alice 需要访问 /user/alice/data,需确保该目录权限为:
      1. hdfs dfs -ls /user/alice
      2. # 输出:drwxr-xr-x   - alice supergroup 0 2023-10-01 /user/alice/data
      复制代码
    • 若权限为 drwx------,则只有 alice 可访问(署理机制仍有效)。

  • YARN 队列权限

    • 若 YARN 队列设置了 acl_submit_applications=alice,bob,则只有这些用户可以提交作业。
    • 通过署理机制,hadoop 用户模仿 bob 提交作业时,YARN 会答应。


安全风险与限制


  • 最小化主机范围

    • 若 hosts=*,任何主机上的 hadoop 用户均可署理,存在安全风险。
    • 生产环境应指定详细主机(如 hadoop01)。

  • 最小化用户范围

    • 若 users=*,hadoop 可模仿任意用户,权限过大。
    • 应仅授权须要用户(如 alice,bob)。

  • 署理用户与实际服务用户划一

    • 若 HiveServer2 以 hive 用户运行,设置应改为:
      1. <property>
      2.     <name>hadoop.proxyuser.hive.hosts</name>
      3.     <value>hadoop01</value>
      4. </property>
      5. <property>
      6.     <name>hadoop.proxyuser.hive.users</name>
      7.     <value>alice,bob</value>
      8. </property>
      复制代码


总结


  • 效果:用户 hadoop 可从 hadoop01 主机署理 alice 和 bob,以他们的身份安全访问 Hadoop 资源。
  • 用途:实用于 HiveServer2、Oozie 等服务需代表差别用户执行操作的场景。
  • 安全:严格限制 hosts 和 users 范围,制止使用通配符 *。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表