当前位置: 首页 > news >正文

Hadoop 的代理用户(Proxy User)​ 功能解释

在$HADOOP_HOME/etc/hadoop下的core-site.xml 配置里,可以新增hadoop集群的代理用户。 在集成配置中,会经常用到。它属于 Hadoop 安全机制的一部分。

以下是对该配置效果的详细说明及示例:


配置效果

<!-- 允许用户 hadoop 从主机 hadoop01 代理用户 alice 和 bob -->
<property><name>hadoop.proxyuser.hadoop.hosts</name><value>hadoop01</value>
</property>
<property><name>hadoop.proxyuser.hadoop.users</name><value>alice,bob</value>
</property>

此配置允许 用户 hadoop主机 hadoop01 发起请求,并模拟 用户 alicebob 执行 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 的权限分配资源。

权限控制关键点

  1. 操作系统用户

    • alicebob 必须在 Hadoop 集群的所有节点上存在(通过 id alice 验证)。
    • 若用户不存在,HDFS 会拒绝访问。
  2. HDFS 目录权限

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

    • 若 YARN 队列配置了 acl_submit_applications=alice,bob,则只有这些用户可以提交作业。
    • 通过代理机制,hadoop 用户模拟 bob 提交作业时,YARN 会允许。

安全风险与限制

  1. 最小化主机范围

    • hosts=*,任何主机上的 hadoop 用户均可代理,存在安全风险。
    • 生产环境应指定具体主机(如 hadoop01)。
  2. 最小化用户范围

    • users=*hadoop 可模拟任意用户,权限过大。
    • 应仅授权必要用户(如 alice,bob)。
  3. 代理用户与实际服务用户一致

    • 若 HiveServer2 以 hive 用户运行,配置应改为:
      <property><name>hadoop.proxyuser.hive.hosts</name><value>hadoop01</value>
      </property>
      <property><name>hadoop.proxyuser.hive.users</name><value>alice,bob</value>
      </property>
      

总结

  • 效果:用户 hadoop 可从 hadoop01 主机代理 alicebob,以他们的身份安全访问 Hadoop 资源。
  • 用途:适用于 HiveServer2、Oozie 等服务需代表不同用户执行操作的场景。
  • 安全:严格限制 hostsusers 范围,避免使用通配符 *
http://www.xdnf.cn/news/399007.html

相关文章:

  • 配置hosts
  • 推理加速新范式:火山引擎高性能分布式 KVCache (EIC)核心技术解读
  • 深入理解Embedding Models(嵌入模型):从原理到实战(下)
  • 【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025
  • SpringBoot校园失物招领信息平台
  • Shell脚本编程3(函数+正则表达式)
  • [特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
  • Modbus协议介绍
  • springboot旅游小程序-计算机毕业设计源码76696
  • Unity ML-Agents实战指南:构建多技能游戏AI训练系统
  • 在Ubuntu系统下编译OpenCV 4.8源码
  • react-diff-viewer 如何实现语法高亮
  • 一小时学会Docker使用!
  • 树莓派4基于Debian GNU/Linux 12 (Bookworm)开启VNC,使用MobaXterm连接VNC出现黑屏/灰屏问题
  • 笔记本电脑升级实战手册【扩展篇1】:flash id查询硬盘颗粒
  • 十四、继承与组合(Inheritance Composition)
  • 【Linux网络编程】HTTPS协议原理
  • 杨校老师项目之基于SSM与JSP的鲜花销售系统-【成品设计含文档】
  • node版本.node版本、npm版本和pnpm版本对应
  • 深入理解目标检测中的关键指标及其计算方法
  • 深度 |国产操作系统“破茧而出”:鸿蒙电脑填补自主生态空白
  • WebRTC实时音视频通话技术EasyRTC嵌入式音视频通信SDK,助力智慧物流打造实时高效的物流管理体系
  • Linux服务器管理面板新选择:mdserver-web深度解析与使用指南
  • 容器化-Docker-私有仓库Harbor
  • 【Web前端开发】CSS基础
  • 69、微服务保姆教程(十二)容器化与云原生
  • python打卡day22
  • MySQL 8.0安装(压缩包方式)
  • QMK键盘固件中LED锁定指示灯的配置与使用详解(实操部分+拓展)
  • 如何让rabbitmq保存服务断开重连?保证高可用?