YARN Capacity Scheduler 简介
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.xm
l(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.xml的yarn.scheduler.capacity.
Property: yarn.scheduler.capacity.root.queues
Value: support,engineering,marketing
Example:
<property> <name>yarn.scheduler.capacity.root.queues</name> <value>support,engineering,marketing</value> <description>The top-level queues below root.</description> </property>
那么 “Support”子队列可以定义如下:
<property> <name>yarn.scheduler.capacity.support.queues</name> <value>training,services</value> <description>child queues under support</description> </property>
“Engineering”子队列定义如下:
<property> <name>yarn.scheduler.capacity.engineering.queues</name> <value>development,qa</value> <description>child queues under engineering</description> </property>
marketing子队列的定义如下:
<property> <name>yarn.scheduler.capacity.marketing.queues</name> <value>sales,advertising</value> <description>child queues under marketing</description> </property>
层级别列特征
· 队列分两种:叶子(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.
下图展示了该集群的容量配置:
英文原文地址:
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.2/bk_system-admin-guide/content/introduction.html
原文地址:YARN Capacity Scheduler 简介, 感谢原作者分享。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

這篇文章帶大家了解三種JavaScript套件管理器(npm、yarn、pnpm),並將這三種套件管理器進行對比,聊聊npm、yarn、pnpm三者的差異和關聯,希望對大家有所幫助,有問題歡迎指出!

Yii框架是一個高效能、高擴充性、高可維護性的PHP開發框架,在開發Web應用程式時具有很高的效率和可靠性。 Yii框架的主要優點在於其獨特的特性和開發方法,同時也整合了許多實用的工具和功能。 Yii框架的核心概念MVC模式Yii採用了MVC(Model-View-Controller)模式,是一種將應用程式分為三個獨立部分的模式,即業務邏輯處理模型、使用者介面呈

yarn 和 npm 一樣也是 JavaScript 套件管理工具,以下這篇文章就來帶大家了解一下yarn套件管理工具,希望對大家有幫助!

物件關聯映射(ORM)框架在python開發中扮演著至關重要的角色,它們透過在物件和關聯式資料庫之間建立橋樑,簡化了資料存取和管理。為了評估不同ORM框架的效能,本文將針對以下流行框架進行基準測試:sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM測試方法基準測試使用了一個包含100萬筆記錄的SQLite資料庫。測試對資料庫執行了以下操作:插入:向表中插入10,000條新記錄讀取:讀取表中的所有記錄更新:更新表中所有記錄的單一欄位刪除:刪除表中的所有記錄每個操作

物件關係映射(ORM)是一種程式設計技術,允許開發人員使用物件程式語言來操作資料庫,而無需直接編寫sql查詢。 python中的ORM工具(例如SQLAlchemy、Peewee和DjangoORM)簡化了大數據專案的資料庫互動。優點程式碼簡潔性:ORM消除了編寫冗長的SQL查詢的需要,這提高了程式碼簡潔性和可讀性。資料抽象化:ORM提供了一個抽象層,將應用程式程式碼與資料庫實作細節隔離開來,提高了靈活性。效能最佳化:ORM通常會使用快取和批次操作來優化資料庫查詢,從而提高效能。可移植性:ORM允許開發人員在不

了解Java設計模式:常用的7種設計模式簡介,需要具體程式碼範例Java設計模式是一種解決軟體設計問題的通用解決方案,它提供了一套被廣泛接受的設計想法與行為準則。設計模式幫助我們更好地組織和規劃程式碼結構,使得程式碼具有更好的可維護性、可讀性和可擴展性。在本文中,我們將介紹Java中常用的7種設計模式,並提供對應的程式碼範例。單例模式(SingletonPatte

react安裝yarn一直報不是內部指令的解決方法:1、透過指令「pm uninstall yarn -g」卸載yarn;2、使用「npm install yarn」重新安裝yarn;3、在系統變數path中加入「C:\ WINDOWS\system32\node_modules\yarn\bin」;4、重新開啟cmd執行「yarn -v」指令即可。

对象关系映射(ORM)是一种技术,它允许在面向对象编程语言和关系数据库之间建立桥梁。使用pythonORM可以显著简化数据持久性操作,从而提高应用程序的开发效率和可维护性。优势使用PythonORM具有以下优势:减少样板代码:ORM自动生成sql查询,从而避免编写大量的样板代码。简化数据库交互:ORM提供了一个统一的接口,用于与数据库交互,简化了数据操作。提高安全性:ORM使用参数化查询,可以防止SQL注入等安全漏洞。促进数据一致性:ORM确保对象与数据库之间的同步,维护数据一致性。选择ORM有
