IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> YARN队列用户提交作业权限配置 -> 正文阅读

[大数据]YARN队列用户提交作业权限配置

一、背景
yarn层面做queue资源隔离,是为了划分不同资源给不同开发人员,甚至不同团队的人。
1、用户默认队列配置
某个用户或者某个小组的成员,默认情况下,提交到指定的队列中(而不是提交到root.default中)
2、队列权限配置
某个用户或者某个小组的成员,只能把任务提交到指定的队列中(队列权限)
3、hadoop group mapping
我们后续的配置中,会有用户组的权限配置,所以这里要特地说明下组映射的事情
hadoop默认是拿namenode所在机器的linux用户的用户组信息,也就是说master机器上有一个用户是lsr,他的组是bigroup,那么可以执行命令查看hadoop是否能够识别这个用户的组信息,如下图(识别成功):
在这里插入图片描述
在这里插入图片描述

当然如果后续做了hive或者其他引擎(presto等)的ldap用户认证,想在ranger中配置ldap组的权限,还需要把hadoop的group mapping配置成ldap的。

Hadoop Groups Mapping:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/GroupsMapping.html

二、队列权限
hadoop官网:https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html
在这里插入图片描述
所以核心点,我们需要通过如上这两个参数来设置每个队列允许哪些用户提交任务
假设我希望让lzc用户并且bigdata能往root.bi这个队列中提交任务(创建队列bi,我就不在这里说了,这个比较简单网上文章还是比较丰富的),其他用户和用户组都不可以,那么具体设置如下:
1、设置parent queue权限
因为子队列权限收到父队列权限影响,假设子队列权限设置了一堆,结果父队列权限写了个*(允许所有用户提交任务),那么子队列的权限不会起任何作用
理论上任何队列都是root的子队列,yanr的default,也是root.default,所以要让所有用户都不能往root上提交
在capacity-scheduler.xml中配置:

  <property>
    <name>yarn.scheduler.capacity.root.acl_submit_applications</name>
    <value> </value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.acl_administer_queue</name>
    <value> </value>
  </property>

这样父队列就是所有用户都拒绝了,然后我们就可以配置各自子队列的权限了.
2、设置子queue权限
acl_administer_queue和acl_submit_applications区别,admin的权限更高,除了可以提交任务之外,还有杀掉任务的能力,但是建议还是两个配置的value都一样

  <property>
    <name>yarn.scheduler.capacity.root.bi.acl_submit_applications</name>
    <value>lzc bigdata</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.acl_administer_queue</name>
     <value>lzc bigdata</value>
  </property>
  <property>

3、没权限提交到bi队列会报错
在这里插入图片描述
三、用户/用户组默认队列
默认情况下,用户不配置提交的队列,那么就会把任务提交到root.default中,队列的映射关系是从左到右,先匹配上的就先生效 ,配置的方式如下:
在这里插入图片描述
1、用户映射到某个队列

  <property>
    <name>yarn.scheduler.capacity.queue-mappings</name>
    <value>u:lzc:bi</value>
  </property>

2、用户组映射到某个队列

  <property>
    <name>yarn.scheduler.capacity.queue-mappings</name>
    <value>u:lsr:bi,g:bigdata:bi</value>
  </property>

完整的CapacityScheduler配置文件如下:

<?xml version="1.0"?>
<configuration>
  <property>
    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
    <value>0.25</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.node-locality-delay</name>
    <value>-1</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.maximum-applications</name>
    <value>10000</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.queue-mappings-override.enable</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.queue-mappings</name>
    <value>u:lzc:bi</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.resource-calculator</name>
    <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>default,bi</value>
  </property>
    <property>
    <name>yarn.scheduler.capacity.root.acl_submit_applications</name>
    <value> </value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.acl_administer_queue</name>
    <value> </value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.capacity</name>
    <value>50</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>
    <value>1</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.acl_administer_queue</name>
    <value> </value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
    <value>50</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.state</name>
    <value>RUNNING</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.acl_submit_applications</name>
    <value> </value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.maximum-am-resource-percent</name>
    <value>0.25</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.minimum-user-limit-percent</name>
    <value>100</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.user-limit-factor</name>
    <value>1</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.maximum-applications</name>
    <value>10000</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.acl_submit_applications</name>
    <value>lzc bigdata</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.acl_administer_queue</name>
    <value>lzc bigdata</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.maximum-am-resource-percent</name>
    <value>0.25</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.bi.capacity</name>
    <value>50</value>
  </property>

</configuration>

感谢耐心观看,有不足之处可以指导下。谢谢。
特别鸣谢lsr40的支持。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 13:26:30  更:2021-07-28 13:26:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 18:50:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码