场景:根据不同项目或不同用户,对yarn资源队列进行划分,达到资源管控,任务管控的目的

yarn资源队列参数设置

当设置为 true 时,如果未指定池名称,Fair Scheduler 将会使用用户名作为默认的池名称,当设置为 false 时,所有应用程序都在一个名为 default 的共享池中运行,设置成false是为了不根据用户名而自动分配资源池

yarn.scheduler.fair.user-as-default-queue false

设置为 true 时,将使用默认设置创建在应用程序中指定但未明确配置的池,设置为 false 时,将在名为 default 的池中运行应用程序指定的未明确配置的池
此设置适用于应用程序明确指定某个池时以及应用程序运行所在的池的名称为与该应用程序关联的用户名的情况

yarn.scheduler.fair.allow-undeclared-pools false

确定哪些用户和组可在任何池中提交和中止应用程序以及可以对 ResourceManager 角色发出命令的 AC,默认是*(所有用户都可以终止任务)

启用 ResourceManager ACL  true

yarn.admin.acl            yarn

修改完配置重启服务

创建测试用户

useradd heboan
passwd heboan useradd dev
passwd dev hdfs dfs -mkdir /user/heboan
hdfs dfs -chown heboan:heboan /user/heboan hdfs dfs -mkdir /user/dev
hdfs dfs -chown dev:dev /user/dev su - heboan
echo "Hello World Bye World" > file0
echo "Hello Hadoop Goodbye Hadoop" > file1
hdfs dfs -mkdir -p /user/heboan/wordcount/input
hdfs dfs -put file* /user/heboan/wordcount/input su - dev
echo "Hello World Bye World" > file0
echo "Hello Hadoop Goodbye Hadoop" > file1
hdfs dfs -mkdir -p /user/dev/wordcount/input
hdfs dfs -put file* /user/dev/wordcount/input

动态资源配置

默认划分了2个资源池
root.default: 默认池,没有划分资源池的用户会提交到default资源池
root.user: 暂时没了解

①编辑root
提交访问控制: 允许这些用户和组向该池提交: 用户: yarn
管理访问空: Allow these users and groups to administer this pool 用户:hdfs

②编辑root.default
提交访问控制: 允许这些用户和组向该池提交 用户: 允许提交的用户名,多个以逗号分隔,这里我配置的是heboan,dev
管理访问控制: Allow these users and groups to administer this pool, 直接继承

③创建2个资源池root.dev和root.heboan
提交访问控制分别设置各自的用户dev ,heboan
管理访问控制直接继承

备注:资源池权重数值越大,与优先

刷新动态资源

测试用户heboan提交任务

su - heboan
可以正常提交到root.heboan资源池

hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount -Dmapreduce.job.queuename=root.heboan wordcount/input wordcount/output

可以正常提交到root.default资源池

hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount -Dmapreduce.job.queuename=root.default wordcount/input wordcount/output

无法提交的root.dev资源池

hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount -Dmapreduce.job.queuename=root.dev wordcount/input wordcount/output

su - dev
结果同理
因为配置了只是允许yarn管理所有的资源池,并且资源池直接继承,hdfs用户才能管理,所以heboan提交的任务只能被自己删除,或者yarn/hdfs, 当然dev提交的任务也是同理

CDH配置YARN动态资源分配的更多相关文章

  1. spark on yarn 动态资源分配报错的解决:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:spark_shuffle does not exist

    组件:cdh5.14.0 spark是自己编译的spark2.1.0-cdh5.14.0 第一步:确认spark-defaults.conf中添加了如下配置: spark.shuffle.servic ...

  2. 「Spark从精通到重新入门(二)」Spark中不可不知的动态资源分配

    前言 资源是影响 Spark 应用执行效率的一个重要因素.Spark 应用中真正执行 task 的组件是 Executor,可以通过spark.executor.instances 指定 Spark ...

  3. spark提交至yarn的的动态资源分配

    1.为什么开启动态资源分配 ⽤户提交Spark应⽤到Yarn上时,可以通过spark-submit的num-executors参数显示地指定executor 个数,随后,ApplicationMast ...

  4. Spark动态资源分配-Dynamic Resource Allocation

    微信搜索lxw1234bigdata | 邀请体验:数阅–数据管理.OLAP分析与可视化平台 | 赞助作者:赞助作者 Spark动态资源分配-Dynamic Resource Allocation S ...

  5. 利用动态资源分配优化Spark应用资源利用率

    背景 在某地市开展项目的时候,发现数据采集,数据探索,预处理,数据统计,训练预测都需要很多资源,现场资源不够用. 目前该项目的资源3台旧的服务器,每台的资源 内存为128G,cores 为24 (co ...

  6. Spark如何进行动态资源分配

    一.操作场景 对于Spark应用来说,资源是影响Spark应用执行效率的一个重要因素.当一个长期运行的服务,若分配给它多个Executor,可是却没有任何任务分配给它,而此时有其他的应用却资源紧张,这 ...

  7. 【原创】大叔经验分享(9)yarn重要配置yarn.nodemanager.local-dirs

    yarn中有一个比较重要的配置yarn.nodemanager.local-dirs,如果配置的不好,在饱和状态运行下集群会出现很多问题:1 默认配置${hadoop.tmp.dir}/nm-loca ...

  8. 记一次有关spark动态资源分配和消息总线的爬坑经历

    问题: 线上的spark thriftserver运行一段时间以后,ui的executor页面上显示大量的active task,但是从job页面看,并没有任务在跑.此外,由于在yarn mode下, ...

  9. C#如何根据配置实现动态窗体

    本文主要讲述如何根据UI配置来动态生成控件, 并添加到窗体上来构建UI窗体,当用户在每个控件上完成输入操作后,程序通过遍历控件并用拼接字符串的方式动态生成Insert SQL语句,进而实现了将UI上的 ...

随机推荐

  1. Set的遍历以及排序详讲

    java中Set集合是一个不包含重复元素的Collection,首先我们先看看遍历方法 package com.sort;   import java.util.HashSet; import jav ...

  2. Spring boot之添加JSP支持

    大纲 (1) 创建Maven web project: (2) 在pom.xml文件添加依赖 (3) 配置application.properties支持jsp (4) 编写测试Controller ...

  3. 套接字之recvfrom系统调用

    recvfrom系统调用通过用户传入的接收空间构造msghdr,并且调用sock_recvmsg,该函数调用socket操作的recvmsg函数sock->ops->recvmsg,ipv ...

  4. Java期末课程学习汇总。

    本学期面向对象与Java程序设计课程已经结束了,给自己学习来个总结. 本学期过的非常快,不得不说这一学期学到的东西很少,感觉自己的进步很小. 而且感觉自己总少了点什么,在写这篇总结前,我认真想了,很多 ...

  5. LeetCode 39. 组合总和(Combination Sum)

    题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限 ...

  6. SpringBoot&Dubbo&Zookeeper远程调用项目搭建

    序言 Dubbo一款分布式服务框架,作为阿里巴巴SOA服务化治理方案的核心框架,通过高性能和透明化的RPC实现服务的远程调用,对服务的负载均衡以及项目的耦合性提供很强的解决方式;具体Dubbo的介绍和 ...

  7. leetcode-easy-string-387 First Unique Character in a String

    mycode  24.42% class Solution: def firstUniqChar(self, s: str) -> int: dic = {} for i in range(le ...

  8. 百度地图api服务端根据经纬度得到地址

    package com.haiyisoft.cAssistant.mapApi; import java.io.BufferedReader;import java.io.IOException;im ...

  9. Hidden的应用

    在写jsp中如果一个 请求的参数(例如:paramTypeCode)不能在另一个请求中使用,我们为了能让他在请求中使用可以利用隐藏域来表示,下面介绍他的用法: 1    <input type= ...

  10. deepClone deepCompare

    一.深度复制 // 深度复制 function deepClone(datas) { if (typeof datas !== 'object' || datas === null) return d ...