简介:

YARN 多租户资源池配置

当多用户同在一个 hadoop 集群作业时,就需要对资源进行有效的限制,例如区分测试、正式资源等

一、查看默认资源池

# 访问:http://192.168.1.25:8088/cluster/scheduler 即 master.hadoop

# 可以看到默认的资源池 default,这里称为队列,当有用户提交任务时,就会使用 default 资源池中的资源

二、配置资源池

hadoop shell > vim etc/hadoop/yarn-site.xml  # YARN 配置文件

<configuration>

    <property>
<name>yarn.resourcemanager.hostname</name>
<value>master.hadoop</value>
</property> <property>
<name>yarn.acl.enable</name>
<value>true</value>
</property> <property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property> <property>
<name>yarn.nodemanager.log-dirs</name>
<value>${yarn.log.dir}/userlogs</value>
</property> <property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> </configuration>

# yarn.acl.enable 开启 ACL 权限认证
# 这里选用的是计算能力调度算法 CapacityScheduler

hadoop shell > vim etc/hadoop/capacity-scheduler.xml  # 子配置文件,主要配置资源池相关参数

<configuration>

    <property>
<name>yarn.scheduler.capacity.maximum-applications</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.1</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,prod</value>
</property> <property>
<name>yarn.scheduler.capacity.root.default.capacity</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.root.default.user-limit-factor</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
<value></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.acl_administer_queue</name>
<value>*</value>
</property> <property>
<name>yarn.scheduler.capacity.root.prod.capacity</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.root.prod.user-limit-factor</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.root.prod.maximum-capacity</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.root.prod.state</name>
<value>RUNNING</value>
</property> <property>
<name>yarn.scheduler.capacity.root.prod.acl_submit_applications</name>
<value>wang</value>
</property> <property>
<name>yarn.scheduler.capacity.root.prod.acl_administer_queue</name>
<value>wang</value>
</property> <property>
<name>yarn.scheduler.capacity.node-locality-delay</name>
<value></value>
</property> <property>
<name>yarn.scheduler.capacity.queue-mappings-override.enable</name>
<value>false</value>
</property> </configuration>

# yarn.scheduler.capacity.maximum-applications 集群中可以同时运行或等待的应用数量
# yarn.scheduler.capacity.maximum-am-resource-percent 集群中可以运行 application master 的资源比例上限,通常用来限制并发运行的应用程序,默认 10%
# yarn.scheduler.capacity.resource-calculator 资源计算方法,默认只计算内存,DominantResourceCalculator 计算内存、CPU
# yarn.scheduler.capacity.root.queues 定义资源池,default、prod
# yarn.scheduler.capacity.root.<default>.capacity 分别定义资源池占用总资源的百分比,同级资源池占用总和必须为 100%
# yarn.scheduler.capacity.root.<default>.user-limit-factor 每用户最多占用资源百分比,默认 100%
# yarn.scheduler.capacity.root.default.maximum-capacity 每资源池使用资源上限,由于资源共享,会存在资源池使用的资源量会超过其配置的容量
# yarn.scheduler.capacity.root.default.state 资源池状态,STOPPED \ RUNNING,状态为 STOPPED 时,用户无法向该队列或子队列提交任务
# yarn.scheduler.capacity.root.default.acl_submit_applications 限制用户、组可以向队列提交任务,默认为 * 所有,该属性具有继承性,子队列会集成府队列的权限
# yarn.scheduler.capacity.root.default.acl_administer_queue 设置可管理该队列的用户、组,例如可以杀死任意任务等
# yarn.scheduler.capacity.node-locality-delay 调度器尝试进行调度的次数,-1 为不启用,默认 40
# yarn.scheduler.capacity.queue-mappings-override.enable 是否用户指定的队列可以被覆盖,默认 false

hadoop shell > vim etc/hadoop/mapred-site.xml

<configuration>

    <property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <property>
<name>mapreduce.cluster.acls.enabled</name>
<value>true</value>
</property> <property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/tmp/hadoop-yarn/staging</value>
</property> </configuration>

三、使配置生效

hadoop shell > yarn rmadmin -refreshQueues  # 增加队列、修改属性等 可以执行该指令,删除队列需要重启 YARN

# 现在刷新网页,就会看到多了一个 prod 的队列(资源池)

四、验证资源池

hadoop shell > hadoop jar /usr/local/hadoop-2.8./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8..jar grep shakespeare.txt outfile what

# hadoop 用户提交任务,进入了 default 队列

hadoop shell > hdfs dfs -mkdir /user/wang
hadoop shell > hdfs dfs -chown -R wang /user/wang
hadoop shell > hdfs dfs -chmod -R /tmp wang shell > hdfs dfs -put shakespeare.txt
wang shell > hadoop jar /usr/local/hadoop-2.8./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8..jar grep -Dmapreduce.job.queuename=prod shakespeare.txt outfile what

# 嗯,不指定资源池,默认使用 default ,用户 Wang 指定可以指定配置好的资源池,访问 http://192.168.1.25:8088 也可以看到,状态正常

# 尴尬的是,其余用户也能指定 prod 资源池,并且可以成功! 说明 ACL 有问题,但是目前还没解决~~~ 超尴尬!

YARN 多租户资源池配置的更多相关文章

  1. CentOS7安装CDH 第十三章:CDH资源池配置

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  2. 马士兵hadoop第四课:Yarn和Map/Reduce配置启动和原理讲解

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  3. [转] Spark-Sql On YARN自动调整Executor数配置

    在所有的NodeManager中,修改yarn-site.xml,为yarn.nodemanager.aux-services添加spark_shuffle值,并设置yarn.nodemanager. ...

  4. HDP 中 yarn 和 MR2 的配置

    以下说明均以集群中 slave 结点的配置为 48G内存,12块硬盘,12核(core) CPU 为例. 在 Yarn 中,一个 Container 是一个基础的包含内存和CPU 的单元.为了较好的平 ...

  5. 马士兵hadoop第四课:Yarn和Map/Reduce配置启动和原理讲解(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  6. Yarn 生产环境核心配置参数

    目录 Yarn 生产环境核心配置参数 ResourceManager NodeManager Container Yarn 生产环境核心配置参数 ResourceManager 配置调度器 yarn. ...

  7. SpringCloud微服务实战——搭建企业级开发框架(四十三):多租户可配置的电子邮件发送系统设计与实现

      在日常生活中,邮件已经被聊天软件.短信等更便捷的信息传送方式代替.但在日常工作中,我们的重要的信息通知等非常有必要去归档追溯,那么邮件就是不可或缺的信息传送渠道.对于我们工作中经常用到的系统,里面 ...

  8. Hadoop多租户架构配置

    cloudera manager 进到cluster里面,点击Dynamic Resource Pools,没做任何配置默认情况下,资源池里有个default资源组 hadoop jar /usr/l ...

  9. YARN内存使用优化配置

    在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考 ...

随机推荐

  1. linux 常用操作以及概念

    一.常用操作以及概念 查看LINUX发行版的名称及其版本号的命令: lsb_release -a cat /etc/redhat-release(针对redhat,Fedora) 0.rpm包路径:/ ...

  2. POJ 3087 Shuffle'm Up bfs

    题目链接:Shuffle'm Up 除了英文题有点恶心.发现模拟 + bfs 就可以过的时候,就是水了. 一个bug 就是filp函数得到string s12失败了.恩.据大腿告知,string 并不 ...

  3. rabbitmq 对多服务器p2p模式配置的一个测试

    一直对rabbitmq p2p 模式的多服务器下做相同配置的 各个服务器数据接受情况比较好奇 今天有空测试了下 xml 文件 <?xml version="1.0" enco ...

  4. C++ 标准库和标准模板库(STL)

    转自原文http://blog.csdn.net/sxhelijian/article/details/7552499 一.C++标准库 C++标准库的内容分为10类,分别是(建议在阅读中,将你已经用 ...

  5. Linux:提示符PS1个性设置

    提示符PS1个性设置 1)默认PS1 echo $PS1 2)个性PS1 #去掉了默认显示的[]号#\e[1;34m\]\u:user名高亮显示并显示颜色#\e[5;33m\]\h:hostname主 ...

  6. tornado多路由示例

    main.py代码: # encoding: utf-8 """ @version: ?? @author: andu99 @contact: andux@qq.com ...

  7. azure 最佳实践 -- 保持冗余

    保持冗余确保你的应用的部署体系是有冗余的,以避免单一节点失败的情况.一个弹性良好的系统可以灵活的绕过系统故障.找出应用中(请求执行)的关键路径.路径中的每个节点是否都有冗余?子系统失败时,系统能否有效 ...

  8. Leetcode 1022. Sum of Root To Leaf Binary Numbers

    dfs class Solution: def sumRootToLeaf(self, root: TreeNode) -> int: stack=[(root,0)] ans=[] bi_st ...

  9. 仿智能社官网:原生JS实现简单又酷炫的3D立方体时钟

    先放一下我做的效果:https://linrunzheng.github.io/3Dclock/3Dclock/new.html 至于3D立方体怎么做这里就不在阐述了,可以看一下我之前的博客. 这里默 ...

  10. bzoj 2212 Tree Rotations

    bzoj 2212 Tree Rotations 考虑一个子树 \(x\) 的左右儿子分别为 \(ls,rs\) .那么子树 \(x\) 内的逆序对数就是 \(ls\) 内的逆序对数,\(rs\) 内 ...