热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

YARNCapacityScheduler简介

1.简介YARN中基础调度单元是队列(queue),每一个在容量调度器(CapacityScheduler)中的队列都有下面属性:·短队列名·队列路径全名·相关子队列和应用的列表·队列的保证容量(guaranteedcapacity)·队列的最大容量(maximumcapacity)

1. 简介 YARN中基础调度单元是队列(queue),每一个在 容量调度器(Capacity Scheduler)中的队列都有下面属性: · 短队列名 · 队列路径全名 · 相关子队列和应用的列表 · 队列的保证容量(guaranteed capacity) · 队列的最大容量(maximum capacity)

1. 简介

YARN中基础调度单元是队列(queue),每一个在 容量调度器(Capacity Scheduler)中的队列都有下面属性:
· 短队列名
· 队列路径全名
· 相关子队列和应用的列表
· 队列的保证容量(guaranteed capacity)
· 队列的最大容量(maximum capacity)
· 有效用户和他们相关的资源分配限制的列表
· 队列的状态
· 访问控制列表(ACLs)控制队列的访问

2. 启用容量调度器

通过设置ResourceManager平台中的/etc/hadoop/conf/yarn-site.xml(HDP或CDH平台)文件属性来启用容量调度器。
yarn.resourcemanager.scheduler.class --- org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
容量调度器的设置包含在YARN RM主机的/etc/hadoop/conf/capacity-scheduler.xml中,容量调度器在启动时读取这个文件,或者在管理员修改这个文件后通过下面命令重新载入配置,管理员的权限配置由RM的yarn.admin.acl属性配置。
yarn rmadmin -refreshQueues

3. 设定队列

YARN中基础调度单元是队列,每一个队列的容量指定了提交到该队列的应用的可用集群资源百分比。队列可以以反映使用资源资源的不同组织、组和用户的数据库结构、资源需求和访问限制的层级来表示。例如,假定公司有三个部门:Engineering, Support, and Marketing。Engineering部有两个子组:Development和QA。Support部有两个子组:training和Service,Marketing部被分割成了Sales和Advertising,下图显示了队列层级结构:
capacity_scheduler_queues
每一个子队列通过capacity-scheduler.xml的yarn.scheduler.capacity..queues配置属性依附到父队列之上。顶层队列”support”, “engineering”,和”marketing”队列会以下面的方式依附到root队列上。
Property: yarn.scheduler.capacity.root.queues
Value: support,engineering,marketing
Example:


  yarn.scheduler.capacity.root.queues
  support,engineering,marketing
  The top-level queues below root.

那么 “Support”子队列可以定义如下:


  yarn.scheduler.capacity.support.queues
  training,services
  child queues under support

“Engineering”子队列定义如下:


  yarn.scheduler.capacity.engineering.queues
  development,qa
  child queues under engineering

marketing子队列的定义如下:


  yarn.scheduler.capacity.marketing.queues
  sales,advertising
  child queues under marketing

层级别列特征
· 队列分两种:叶子(leaf)队列和父(parent)队列
· 父队列用于组织层级之间的管理. 他们可以包含更多的父队列和叶子队列,他们自己不会直接接受应用的提交。
· 叶子队是居于父队列之下并接受应用。叶子队列不会包含其他子队列,因此不会有任务配置属性以.queues结尾。
· 顶层的父队列root不属于任何组织,它代表了集群自身。
· 通过父队列和叶子队列,管理员可以为不同的组织层级指定容量分配
队列调度
· 层级队列确保了资源会首先在组织子队列之间分享,然后才会将剩余的资源其他组织分配之前分享。这会确保每一个组织可以控制控制资源的使用。
· 每一个层级、每一个父队列保证了它的子队列以一个按需的方式排序。队列的排序由每一个当前使用的队列容量决定(或者当两个队列的预留容量相同时由队列路径全名决定)
· root队列会知道集群容量如何在一级父队列之间分布式共享,并在它们的子队列中启用调度。
· 每一个父队列会将容量的限制应用到子队列之中。
· 叶子·队列维持一个活跃应用的列表(可能来自多个用户)并以FIFO的方式调度资源,并受制于分配给用户的资源容量限制。

4. 通过ACL来限制队列的访问

访问控制列表用于限制用户和管理员来访问队列。应用只能提交到叶子队列上,但是ACL限制可以设在父队列上,并应用到它所有的子队列中。
在容量调度器中,通过acl_submit_application属性来配置给用户或组来授权队列的访问,列表的格式为”user1,user2 group1,group”—–以逗号分割的用户列表,紧接一个空格后是一个逗号分割的组列表。
acl_submit_applications 可以设为”*”(星号)可以允许所有用户和组访问,而设置为” “(空字符)则阻塞了所有用户和组的访问。
下面的例子限制了support队列仅对用户”Sherlock”、”pacilli”和cfo-group组的成员的开放访问
属性: yarn.scheduler.capacity.root.support.acl_submit_applications
值: sherlock,pacioli cfo-group
每一个ACL可以在控制管理任意层级队列。队列管理员可以提交应用到任意队列(不通过显式提交ACL的方式)、杀死队列中的所有应用并获得队列应用中的信息。
管理员ACL可以通过配置acl_administer_queue属性获得,下面的例子管理员会授权support队列给cfo-group组。
属性: yarn.scheduler.capacity.root.support.acl_administer_queue
值: cfo-group
描述: 一个空格字符后接着 “cfo-group”

5. 通过队列管理集群的容量资源

容量调度器被设计用来允许组织间以非常类似FIFO队列的方式来共享集群资源。YARN并不将整个节点(node)分配给队列,队列拥有集群容量的一部分,而指定的队列容量会从以意数量的节点动态的方式实现。
调度是一个匹配资源需求的过程—来自多个用户的不同应用,提交到队列体系中的不同层级的不同队列之中,并使用集群节点中的可用容量资源进行分配。由于集群容量资源的总量会变化,容量属性值可以为百分数。
“容量”属性可以被管理员分配集群容量的百分比资源给队列。下面的属性将集群资源 以6:1:3比率(60%, 10%, and 30%)分配给了Engineering, Support, 和Marketing组织
属性: yarn.scheduler.capacity.root.engineering.capacity
值: 60
属性: yarn.scheduler.capacity.root.support.capacity
值: 10
属性: yarn.scheduler.capacity.root.marketing.capacity
值: 30
现在假定Engineering决定以1:4的比率将资源分配给Development组和QA组,可以通过下面的设置实现:
属性: yarn.scheduler.capacity.root.engineering.development.capacity
值: 20
属性: yarn.scheduler.capacity.root.engineering.qa.capacity
值: 80
注意:每层容量值的和必须为100%,而且你不能将一个子队列的值设置为0.
下图展示了该集群的容量配置:
capacity_scheduler_queue_percents

英文原文地址:
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.2/bk_system-admin-guide/content/introduction.html

推荐阅读
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
author-avatar
墨镜DHED_304
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有