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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

이 기사에서는 세 가지 JavaScript 패키지 관리자(npm, Yarn, pnpm)를 소개하고, 이 세 가지 패키지 관리자를 비교하고, npm, Yarn 및 pnpm 간의 차이점과 관계에 대해 설명합니다. 모두에게 도움이 되기를 바랍니다. 도와주세요. 질문이 있으면 지적해 주세요!

Yii 프레임워크는 웹 애플리케이션을 개발할 때 효율성과 안정성이 뛰어난 고성능, 확장성, 유지 관리 가능성이 높은 PHP 개발 프레임워크입니다. 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가지 디자인 패턴을 소개하고 해당 코드 예제를 제공합니다. 싱글톤 패트

React 설치 Yarn이 내부 명령이 아니라고 계속 보고하는 문제에 대한 해결책은 다음과 같습니다. 1. "pm uninstall Yarn -g" 명령을 통해 Yarn을 제거합니다. 2. "npm install Yarn"을 사용하여 Yarn을 다시 설치합니다. :\ WINDOWS\system32\node_modules\yarn\bin"; 4. cmd를 다시 열고 "yarn -v" 명령을 실행합니다.

ORM(Object-Relational Mapping)은 객체지향 프로그래밍 언어와 관계형 데이터베이스를 연결하는 기술입니다. pythonORM을 사용하면 데이터 지속성 작업이 크게 단순화되어 애플리케이션 개발 효율성과 유지 관리성이 향상됩니다. PythonORM을 사용하면 다음과 같은 장점이 있습니다. 상용구 코드 감소: ORM은 자동으로 SQL 쿼리를 생성하므로 많은 상용구 코드를 작성하지 않아도 됩니다. 데이터베이스 상호 작용 단순화: ORM은 데이터베이스와의 상호 작용을 위한 통합 인터페이스를 제공하여 데이터 작업을 단순화합니다. 보안 향상: ORM은 SQL 주입과 같은 보안 취약성을 방지할 수 있는 매개변수화된 쿼리를 사용합니다. 데이터 일관성 향상: ORM은 개체와 데이터베이스 간의 동기화를 보장하고 데이터 일관성을 유지합니다. ORM을 선택하세요
