데이터 베이스 MySQL 튜토리얼 Hadoop层级队列组织方式

Hadoop层级队列组织方式

Jun 07, 2016 pm 04:29 PM
hadoop 작가 계층 시나 방법 정리하다 대기줄

作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce/hadoop-hierarchy-queues/ 在Hadoop 0.20.x版本或者更早的版本,Hadoop采用了平级队列组织方式,在这种组织方

在Hadoop 0.20.x版本或者更早的版本,Hadoop采用了平级队列组织方式,在这种组织方式中,管理员可将用户分到若干个扁平队列中,在每个队列中,可指定一个或几个队列管理员管理这些用户,比如杀死任意用户的作业,修改任意用户作业的优先级。然而,从资源管理角度看,仅仅按照队列组织用户是不够的,还需要将资源划分到这几个队列中,并按照一定的策略完成资源分配,这就需要Hadoop作业调度器的支持。总之,在Hadoop中,队列的组织是队列管理和资源分配的基础。

随着Hadoop应用越来越广泛,有用户提出需支持层级队列组织方式。典型的应用场景如下:在一个Hadoop集群中,管理员将所有计算资源划分给了若干个队列,每个队列对应了一个“组织”,其中有一个组织“Org1”,它分到了60%的资源,它内部包含3中类型的作业:

(1)产品线作业

(2)实验性作业—分属于三个不用的项目:Proj1,Proj2和Proj3

(3)其他类型作业

Org1管理员想更有效地控制这60%资源,比如将大部分资源分配给产品线作业的同时,能够让实验性作业和其他类型作业有最少资源保证。考虑到产品线作业提交频率很低,当有产品线作业提交时,必须第一时间得到资源,剩下的资源才给其他类型的作业,然而,一旦产品线作业运行结束,实验性作业和其他类型作业必须马上获取未使用的资源,一个可能的配置方式如下:

grid {
Org1 min=60% {
priority min=90% {
production min=82%
proj1 min=6% max=10%
proj2 min=6%
proj3 min=6%
}
miscellaneous min=10%
}
Org2 min=40%
}
로그인 후 복사

这就引出来层级队列组织方式。

(1) 子队列

1)? 队列可以嵌套,每个队列均可以包含子队列。

2)? 用户只能将作业提交到最底层的队列,即叶子队列。

(2)最少容量

1)每个子队列均有一个“最少容量比”属性,表示可以使用父队列的容量的百分比

2)调度器总是优先选择当前资源使用率最低的队列,并为之分配资源。比如同级的两个队列Q1和Q2,他们的最少容量均为30,而Q1已使用10,Q2已使用12,则调度器会优先将资源分配给Q1。

3)最少容量不是“总会保证的最低容量”,也就是说,如果一个队列的最少容量为20,而该队列中所有队列仅使用了5,那么剩下的15可能会分配给其他需要的队列。

4)最少容量的值为不小于0的数,但也不能大于“最大容量”。

(3最大容量

1)? 为了防止一个队列超量使用资源,可以为队列设置一个最大容量,这是一个资源使用上限,任何时刻使用的资源总量不能超过该值。

2) 默认情况下队列的最大容量是无限大,这意味着,当一个队列只分配了20%的资源,所有其他队列没有作业时,该队列可能使用100%的资源,当其他队列有作业提交时,再逐步归还。

如何将一个队列中的资源分配给它的各个子队列?

当一个TaskTracker发送心跳请求一个新任务时,调度器会按照以下策略为之选择任务:

1)? 按照 比值{used capacity}/{minimum-capaity},对所有子队列排序;

2)? 选择一个比值{used capacity}/{minimum-capaity}最小的队列:

如果是一个叶子队列,且有处于pending状态的任务,则选择一个任务(不能超过maximum capacity);

否则,递归地从这个队列的子队列中选择任务。

3)? 如果没有找到任务,则查看下一个队列。

层级队列组织方式在 0.21.x和0.22.x中引入,但仅有Capacity Scheduler支持该组织方式(https://issues.apache.org/jira/browse/MAPREDUCE-824 ),当然,最新的YARN(Hadoop 0.23.x和2.0.x-alpha)也为Fair Scheduler增加了层级队列的支持,具体参考:https://issues.apache.org/jira/browse/YARN-187。

如何配置?

以0.21.x为例,管理员可在配置文件mapred-queues.xml中配置层级队列,配置方式如下:

<queues>
<queue>
<name>Org1</name>
<queue>
<name>production</name>
<properties>
<property key="”capacity”" value="”20″/">
<property key="”" maximum-capacity value="”20″/">
<property key="”supports-priority”" value="”true”/">
<property key="”minimum-user-limit-percent”" value="”30″/">
<property key="”maximum-initialized-jobs-per-user”" value="”10″/">
<property key="”user-limit”" value="”30″/">
</property></property></property></property></property></property></properties>
</queue>
<queue>
<name>miscellaneous</name>
<properties>
<property key="”capacity”" value="”10″/">
<property key="”" maximum-capacity value="”20″/">
<property key="”user-limit”" value="”20″/">
</property></property></property></properties>
</queue>
。。。。。。。
</queue></queues>
로그인 후 복사

管理员可在capacity-scheduler.xml中设置一些参数的默认值和Capacity独有的配置:

<configuration>
<property>
<name>mapred.capacity-scheduler.default-supports-priority</name>
<value>false</value>
</property>
<property>
<name>mapred.capacity-scheduler.default-minimum-user-limit-percent</name>
<value>100</value>
</property>
<property>
<name>mapred.capacity-scheduler.default-maximum-initialized-jobs-per-user</name>
<value>2</value>
</property>
<property>
<name>mapred.capacity-scheduler.init-poll-interval</name>
<value>5000</value>
</property>
<property>
<name>mapred.capacity-scheduler.init-worker-threads</name>
<value>5</value>
</property>
</configuration>
로그인 후 복사

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce/hadoop-hierarchy-queues/

作者:Dong,作者介绍:http://dongxicheng.org/about/


Copyright © 2012
This feed is for personal, non-commercial use only.
The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PHP 및 MySQL의 메시지 지연 및 메시지 재시도에 큐 기술 적용 PHP 및 MySQL의 메시지 지연 및 메시지 재시도에 큐 기술 적용 Oct 15, 2023 pm 02:26 PM

PHP 및 MySQL의 메시지 지연 및 메시지 재시도에 대한 큐 기술 적용 요약: 웹 애플리케이션의 지속적인 개발로 인해 높은 동시 처리 및 시스템 안정성에 대한 요구가 점점 더 높아지고 있습니다. 이에 대한 해결책으로 큐 기술은 메시지 지연 및 메시지 재시도 기능을 구현하기 위해 PHP 및 MySQL에서 널리 사용됩니다. 이 기사에서는 큐의 기본 원리, 큐를 사용하여 메시지 지연을 구현하는 방법, 큐를 사용하여 메시지 재시도를 구현하는 방법을 포함하여 PHP 및 MySQL의 큐 기술 적용을 소개하고 다음을 제공합니다.

Java Queue 큐 성능 분석 및 최적화 전략 Java Queue 큐 성능 분석 및 최적화 전략 Jan 09, 2024 pm 05:02 PM

JavaQueue의 성능 분석 및 최적화 전략 큐 요약: 큐(Queue)는 Java에서 일반적으로 사용되는 데이터 구조 중 하나이며 다양한 시나리오에서 널리 사용됩니다. 이 기사에서는 성능 분석 및 최적화 전략이라는 두 가지 측면에서 JavaQueue 대기열의 성능 문제를 논의하고 특정 코드 예제를 제공합니다. 소개 큐는 생산자-소비자 모드, 스레드 풀 작업 큐 및 기타 시나리오를 구현하는 데 사용할 수 있는 FIFO(선입선출) 데이터 구조입니다. Java는 Arr과 같은 다양한 대기열 구현을 제공합니다.

빅 데이터 분야에서 Java 적용 살펴보기: Hadoop, Spark, Kafka 및 기타 기술 스택에 대한 이해 빅 데이터 분야에서 Java 적용 살펴보기: Hadoop, Spark, Kafka 및 기타 기술 스택에 대한 이해 Dec 26, 2023 pm 02:57 PM

Java 빅데이터 기술 스택: Hadoop, Spark, Kafka 등 빅데이터 분야에서 Java의 응용을 이해합니다. 데이터의 양이 지속적으로 증가함에 따라 오늘날 인터넷 시대에 빅데이터 기술이 화두가 되고 있습니다. 빅데이터 분야에서 우리는 하둡(Hadoop), 스파크(Spark), 카프카(Kafka) 등의 기술 이름을 자주 듣습니다. 이러한 기술은 매우 중요한 역할을 하며, 널리 사용되는 프로그래밍 언어인 Java는 빅데이터 분야에서도 큰 역할을 합니다. 이 기사에서는 Java의 대규모 애플리케이션에 중점을 둘 것입니다.

PHP 및 MySQL의 대기열 작업 모니터링 및 작업 스케줄링 구현 계획 PHP 및 MySQL의 대기열 작업 모니터링 및 작업 스케줄링 구현 계획 Oct 15, 2023 am 09:15 AM

PHP 및 MySQL에서 대기열 작업 모니터링 및 작업 예약 구현 소개 현대 웹 애플리케이션 개발에서 작업 대기열은 매우 중요한 기술입니다. 큐를 통해 백그라운드에서 실행해야 하는 일부 작업을 대기열에 넣을 수 있고, 작업 스케줄링을 통해 작업의 실행 시간과 순서를 제어할 수 있습니다. 이 기사에서는 PHP 및 MySQL에서 작업 모니터링 및 예약을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 큐의 작동 원리 큐는 다음 작업에 사용할 수 있는 FIFO(선입선출) 데이터 구조입니다.

PHP 메일 큐 시스템의 원리와 구현은 무엇입니까? PHP 메일 큐 시스템의 원리와 구현은 무엇입니까? Sep 13, 2023 am 11:39 AM

PHP 메일 큐 시스템의 원리와 구현은 무엇입니까? 인터넷의 발달과 함께 이메일은 사람들의 일상생활과 업무에서 없어서는 안 될 의사소통 수단 중 하나가 되었습니다. 그러나 사업이 성장하고 사용자 수가 증가함에 따라 이메일을 직접 보내는 경우 서버 성능 저하, 이메일 전달 실패 등의 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 메일 대기열 시스템을 사용하여 직렬 대기열을 통해 이메일을 보내고 관리할 수 있습니다. 메일 대기열 시스템의 구현 원리는 다음과 같습니다. 메일이 대기열에 들어갈 때, 메일을 보내야 할 때 더 이상 직접적으로 메일을 보내지 않습니다.

큐를 사용하여 이진 검색 트리에서 경로를 바꾸는 C++ 코드 큐를 사용하여 이진 검색 트리에서 경로를 바꾸는 C++ 코드 Sep 14, 2023 pm 07:21 PM

예를 들어, 이진 검색 트리가 주어지면 특정 키에서 경로를 바꿔야 합니다. 솔루션을 찾는 방법 이 접근 방식에서는 대기열을 생성하고 루트 노드를 얻을 때까지 모든 노드를 푸시합니다. p>예제 #include<bits/stdc++.h>usingnamespacestd;structnode{ intkey structnode*left,*right;};structnode*newNode(intitem){&nb;

PHP 플래시 판매 시스템의 대기열 및 비동기 처리 최적화 방법 PHP 플래시 판매 시스템의 대기열 및 비동기 처리 최적화 방법 Sep 19, 2023 pm 01:45 PM

PHP 플래시 세일 시스템의 대기열 및 비동기 처리 최적화 방법 인터넷의 급속한 발전과 함께 플래시 세일, 긴급 세일 등 전자상거래 플랫폼의 다양한 우대 활동도 사용자의 관심의 초점이 되었습니다. 그러나 이렇게 높은 동시 사용자 요청은 기존 PHP 애플리케이션에 있어서 큰 과제입니다. 시스템의 성능과 안정성을 향상하고 동시 요청으로 인한 부담을 해결하기 위해 개발자는 플래시 세일 시스템을 최적화해야 합니다. 이 기사에서는 PHP 플래시 판매 시스템의 대기열 및 비동기 처리를 통해 달성되는 최적화 방법에 중점을 두고 구체적인 코드 예제를 제공합니다.

PHP 및 MySQL에서 대기열 메시지 확인 및 소비 실패 처리를 구현하는 방법 PHP 및 MySQL에서 대기열 메시지 확인 및 소비 실패 처리를 구현하는 방법 Oct 15, 2023 pm 01:46 PM

PHP 및 MySQL에서 대기열 메시지 확인 및 소비 실패 처리 구현 방법 대기열은 시스템의 높은 동시성 문제를 해결하고 비동기 처리 및 분리를 달성하는 데 도움이 될 수 있는 일반적인 메시지 전달 메커니즘입니다. 대기열 설계에서 메시지 확인 및 소비 실패 처리는 매우 중요한 링크입니다. 이 기사에서는 PHP와 MySQL을 사용하여 대기열 메시지 확인 및 소비 실패 처리를 구현하는 방법을 살펴보고 구체적인 코드 예제를 제공합니다. 메시지 확인은 대기열에 있습니다. 메시지 확인은 소비자가 메시지를 성공적으로 처리한 후 해당 메시지를 대기열로 보내는 것을 의미합니다.

See all articles