목차
1. 简介
2. 启用容量调度器
3. 设定队列
4. 通过ACL来限制队列的访问
5. 通过队列管理集群的容量资源
데이터 베이스 MySQL 튜토리얼 YARN Capacity Scheduler 简介

YARN Capacity Scheduler 简介

Jun 07, 2016 pm 04:41 PM
capacity yarn 소개

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:

<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.
下图展示了该集群的容量配置:
capacity_scheduler_queue_percents

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

JavaScript 패키지 관리자 비교: Npm vs Yarn vs Pnpm JavaScript 패키지 관리자 비교: Npm vs Yarn vs Pnpm Aug 09, 2022 pm 04:22 PM

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

Yii 프레임워크 소개: Yii의 핵심 개념 이해 Yii 프레임워크 소개: Yii의 핵심 개념 이해 Jun 21, 2023 am 09:39 AM

Yii 프레임워크는 웹 애플리케이션을 개발할 때 효율성과 안정성이 뛰어난 고성능, 확장성, 유지 관리 가능성이 높은 PHP 개발 프레임워크입니다. Yii 프레임워크의 가장 큰 장점은 고유한 기능과 개발 방법이면서 동시에 많은 실용적인 도구와 기능을 통합한다는 것입니다. Yii 프레임워크의 핵심 개념인 MVC 패턴 Yii는 애플리케이션을 비즈니스 로직 처리 모델과 사용자 인터페이스 표현 모델이라는 세 가지 독립적인 부분으로 나누는 패턴인 MVC(Model-View-Controller) 패턴을 채택합니다. .

JS 패키지 관리 도구를 간략하게 분석한 기사: Yarn JS 패키지 관리 도구를 간략하게 분석한 기사: Yarn Aug 09, 2022 pm 03:49 PM

Yarn도 npm과 마찬가지로 JavaScript 패키지 관리 도구입니다. 이번 글에서는 Yarn 패키지 관리 도구를 소개하겠습니다.

Python ORM 성능 벤치마크: 다양한 ORM 프레임워크 비교 Python ORM 성능 벤치마크: 다양한 ORM 프레임워크 비교 Mar 18, 2024 am 09:10 AM

ORM(객체 관계형 매핑) 프레임워크는 Python 개발에서 중요한 역할을 하며, 객체와 관계형 데이터베이스 사이에 브리지를 구축하여 데이터 액세스 및 관리를 단순화합니다. 다양한 ORM 프레임워크의 성능을 평가하기 위해 이 기사에서는 다음과 같은 널리 사용되는 프레임워크를 벤치마킹합니다. sqlAlchemyPeeweeDjangoORMPonyORMTortoiseORM 테스트 방법 벤치마크에서는 100만 개의 레코드가 포함된 SQLite 데이터베이스를 사용합니다. 테스트는 데이터베이스에서 다음 작업을 수행했습니다. 삽입: 테이블에 10,000개의 새 레코드를 삽입합니다. 읽기: 테이블의 모든 레코드를 읽습니다. 업데이트: 테이블의 모든 레코드에 대해 단일 필드를 업데이트합니다. 삭제: 테이블의 모든 레코드를 삭제합니다. 각 작업

빅데이터 프로젝트에 Python ORM 적용 빅데이터 프로젝트에 Python ORM 적용 Mar 18, 2024 am 09:19 AM

ORM(객체 관계형 매핑)은 개발자가 SQL 쿼리를 직접 작성하지 않고도 객체 프로그래밍 언어를 사용하여 데이터베이스를 조작할 수 있도록 하는 프로그래밍 기술입니다. Python의 ORM 도구(예: SQLAlchemy, Peewee 및 DjangoORM)는 빅 데이터 프로젝트의 데이터베이스 상호 작용을 단순화합니다. 장점 코드 단순성: ORM을 사용하면 긴 SQL 쿼리를 작성할 필요가 없으므로 코드 단순성과 가독성이 향상됩니다. 데이터 추상화: ORM은 데이터베이스 구현 세부 사항에서 애플리케이션 코드를 분리하여 유연성을 향상시키는 추상화 계층을 제공합니다. 성능 최적화: ORM은 캐싱 및 일괄 작업을 사용하여 데이터베이스 쿼리를 최적화함으로써 성능을 향상시키는 경우가 많습니다. 이식성: ORM을 통해 개발자는 다음을 수행할 수 있습니다.

일반적으로 사용되는 7가지 Java 디자인 패턴에 대해 심층적으로 이해하세요. 일반적으로 사용되는 7가지 Java 디자인 패턴에 대해 심층적으로 이해하세요. Dec 23, 2023 pm 01:01 PM

Java 디자인 패턴 이해: 일반적으로 사용되는 7가지 디자인 패턴에 대한 소개, 특정 코드 예제가 필요합니다. Java 디자인 패턴은 널리 수용되는 일련의 디자인 아이디어와 행동 ​​강령을 제공합니다. 디자인 패턴은 코드 구조를 더 잘 구성하고 계획하는 데 도움이 되므로 코드의 유지 관리, 읽기 및 확장성이 향상됩니다. 이 글에서는 Java에서 일반적으로 사용되는 7가지 디자인 패턴을 소개하고 해당 코드 예제를 제공합니다. 싱글톤 패트

React 설치 원사가 계속해서 내부 명령이 아니라고 보고하면 어떻게 해야 하나요? React 설치 원사가 계속해서 내부 명령이 아니라고 보고하면 어떻게 해야 하나요? Jan 04, 2023 am 09:24 AM

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

Python ORM을 사용하여 효율적인 데이터 지속성 구현 Python ORM을 사용하여 효율적인 데이터 지속성 구현 Mar 18, 2024 am 09:25 AM

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

See all articles