Hadoop MapReduce与YARN授权管理详解
1. 核心概念概述
在Hadoop生态系统中,MapReduce和YARN本身并不直接控制数据访问,但它们提供了对集群资源(如CPU、内存、磁盘I/O和网络I/O)的访问权限。由于这些资源是有限的,在多租户环境中,管理员通常会将资源分配给特定的用户或组。服务级授权可以控制对特定协议的访问,例如谁可以向集群提交作业,但它不足以对集群资源进行细粒度的访问控制。因此,Hadoop支持在作业队列上使用访问控制列表(ACLs)来安全地控制资源,这些ACLs可以控制哪些用户可以提交作业到特定队列,以及哪些用户可以管理队列。
2. 用户角色分类
MapReduce定义了不同类型的用户,这些用户会影响ACLs的解释方式:
- MapReduce/YARN集群所有者 :启动JobTracker进程(MR1)或ResourceManager进程(YARN)的用户被定义为集群所有者。该用户有权向任何队列提交作业,并可以管理任何队列或作业。在大多数情况下,MapReduce(MR1)的集群所有者是 mapred
,YARN的集群所有者是 yarn
。由于以集群所有者身份运行作业存在安全风险,LinuxTaskController默认会将 mapred
和 yarn
用户账户列入黑名单,禁止它们提交作业。
- MapReduce管理员 :可以通过设置创建全局MapReduce管理员,他们拥有与集群所有者相同的权限。定义特定的用户或组作