Heim Datenbank MySQL-Tutorial Hadoop层级队列组织方式

Hadoop层级队列组织方式

Jun 07, 2016 pm 04:29 PM
hadoop Autor 层级 新浪 方式 organisieren 队列

作者: 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%
}
Nach dem Login kopieren

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

(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>
Nach dem Login kopieren

管理员可在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>
Nach dem Login kopieren

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

本文链接地址: 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:
)
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Oct 15, 2023 pm 02:26 PM

Anwendung der Warteschlangentechnologie bei Nachrichtenverzögerung und Nachrichtenwiederholung in PHP und MySQL Zusammenfassung: Mit der kontinuierlichen Entwicklung von Webanwendungen wird die Nachfrage nach hoher Parallelitätsverarbeitung und Systemzuverlässigkeit immer höher. Als Lösung wird die Warteschlangentechnologie in PHP und MySQL häufig verwendet, um Nachrichtenverzögerungs- und Nachrichtenwiederholungsfunktionen zu implementieren. In diesem Artikel wird die Anwendung der Warteschlangentechnologie in PHP und MySQL vorgestellt, einschließlich der Grundprinzipien von Warteschlangen, Methoden zur Verwendung von Warteschlangen zur Implementierung von Nachrichtenverzögerungen und Methoden zur Verwendung von Warteschlangen zur Implementierung von Nachrichtenwiederholungen

Analyse- und Optimierungsstrategien für die Leistung der Java-Warteschlange Analyse- und Optimierungsstrategien für die Leistung der Java-Warteschlange Jan 09, 2024 pm 05:02 PM

Leistungsanalyse und Optimierungsstrategie von JavaQueue Queue Zusammenfassung: Queue (Queue) ist eine der am häufigsten verwendeten Datenstrukturen in Java und wird in verschiedenen Szenarien häufig verwendet. In diesem Artikel werden die Leistungsprobleme von JavaQueue-Warteschlangen unter zwei Aspekten erörtert: Leistungsanalyse und Optimierungsstrategien sowie spezifische Codebeispiele. Einführungswarteschlange ist eine First-In-First-Out-Datenstruktur (FIFO), die zur Implementierung des Producer-Consumer-Modus, der Thread-Pool-Aufgabenwarteschlange und anderer Szenarien verwendet werden kann. Java bietet eine Vielzahl von Warteschlangenimplementierungen, wie z. B. Arr

Entdecken Sie die Anwendung von Java im Bereich Big Data: Verständnis von Hadoop, Spark, Kafka und anderen Technologie-Stacks Entdecken Sie die Anwendung von Java im Bereich Big Data: Verständnis von Hadoop, Spark, Kafka und anderen Technologie-Stacks Dec 26, 2023 pm 02:57 PM

Java-Big-Data-Technologie-Stack: Verstehen Sie die Anwendung von Java im Bereich Big Data wie Hadoop, Spark, Kafka usw. Da die Datenmenge weiter zunimmt, ist die Big-Data-Technologie im heutigen Internetzeitalter zu einem heißen Thema geworden. Im Bereich Big Data hören wir oft die Namen Hadoop, Spark, Kafka und andere Technologien. Diese Technologien spielen eine entscheidende Rolle, und Java spielt als weit verbreitete Programmiersprache auch im Bereich Big Data eine große Rolle. Dieser Artikel konzentriert sich auf die Anwendung von Java im Großen und Ganzen

Implementierungsplan für die Überwachung von Warteschlangenaufgaben und die Aufgabenplanung in PHP und MySQL Implementierungsplan für die Überwachung von Warteschlangenaufgaben und die Aufgabenplanung in PHP und MySQL Oct 15, 2023 am 09:15 AM

Implementierung der Überwachung von Warteschlangenaufgaben und der Aufgabenplanung in PHP und MySQL. Einführung In der modernen Webanwendungsentwicklung ist die Aufgabenwarteschlange eine sehr wichtige Technologie. Über Warteschlangen können wir einige Aufgaben, die im Hintergrund ausgeführt werden müssen, in eine Warteschlange stellen und die Ausführungszeit und Reihenfolge der Aufgaben durch Aufgabenplanung steuern. In diesem Artikel wird die Implementierung der Aufgabenüberwachung und -planung in PHP und MySQL vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Funktionsprinzip der Warteschlange Warteschlange ist eine FIFO-Datenstruktur (First-In-First-Out), die verwendet werden kann

Was ist das Prinzip und die Implementierung des PHP-Mail-Warteschlangensystems? Was ist das Prinzip und die Implementierung des PHP-Mail-Warteschlangensystems? Sep 13, 2023 am 11:39 AM

Was ist das Prinzip und die Implementierung des PHP-Mail-Warteschlangensystems? Mit der Entwicklung des Internets ist E-Mail zu einem unverzichtbaren Kommunikationsmittel im täglichen Leben und bei der Arbeit der Menschen geworden. Wenn das Unternehmen jedoch wächst und die Anzahl der Benutzer zunimmt, kann das direkte Versenden von E-Mails zu Problemen wie einer Verschlechterung der Serverleistung und einem Ausfall der E-Mail-Zustellung führen. Um dieses Problem zu lösen, können Sie ein Mail-Warteschlangensystem verwenden, um E-Mails über eine serielle Warteschlange zu senden und zu verwalten. Das Implementierungsprinzip des Mail-Warteschlangensystems lautet wie folgt: Wenn die E-Mail in die Warteschlange gestellt wird und die E-Mail gesendet werden muss, erfolgt dies nicht mehr direkt

C++-Code zum Umkehren von Pfaden in einem binären Suchbaum mithilfe von Warteschlangen C++-Code zum Umkehren von Pfaden in einem binären Suchbaum mithilfe von Warteschlangen Sep 14, 2023 pm 07:21 PM

Bei einem gegebenen binären Suchbaum müssen wir beispielsweise seinen Pfad von einem bestimmten Schlüssel aus umkehren. Möglichkeiten, die Lösung zu finden Bei diesem Ansatz erstellen wir eine Warteschlange und pushen alle Knoten, bis wir den Wurzelknoten erhalten. p>Beispiel #include<bits/stdc++.h>usingnamespacestd;structnode{ intkey; structnode*left,*right;};structnode*newNode(initem){&nb

Optimierungsmethoden für Warteschlangen und asynchrone Verarbeitung im PHP-Flash-Sale-System Optimierungsmethoden für Warteschlangen und asynchrone Verarbeitung im PHP-Flash-Sale-System Sep 19, 2023 pm 01:45 PM

Optimierungsmethoden für Warteschlangen und asynchrone Verarbeitung im PHP-Flash-Sale-System Mit der rasanten Entwicklung des Internets sind auch verschiedene bevorzugte Aktivitäten auf E-Commerce-Plattformen wie Flash-Sales und Rush-Sales in den Fokus der Benutzer gerückt. Diese hohe Anzahl gleichzeitiger Benutzeranforderungen stellt jedoch eine große Herausforderung für herkömmliche PHP-Anwendungen dar. Um die Leistung und Stabilität des Systems zu verbessern und den durch gleichzeitige Anfragen verursachten Druck zu verringern, müssen Entwickler das Flash-Sale-System optimieren. Dieser Artikel konzentriert sich auf die Optimierungsmethoden, die durch Warteschlangen und asynchrone Verarbeitung im PHP-Flash-Sale-System erreicht werden, und gibt spezifische Codebeispiele.

So implementieren Sie die Bestätigung von Warteschlangennachrichten und die Behandlung von Verbrauchsfehlern in PHP und MySQL So implementieren Sie die Bestätigung von Warteschlangennachrichten und die Behandlung von Verbrauchsfehlern in PHP und MySQL Oct 15, 2023 pm 01:46 PM

Implementierungsmethoden zur Bestätigung von Warteschlangennachrichten und zur Behandlung von Verbrauchsfehlern in PHP und MySQL. Die Warteschlange ist ein allgemeiner Nachrichtenübermittlungsmechanismus, der dazu beitragen kann, Probleme mit hoher Parallelität im System zu lösen und eine asynchrone Verarbeitung und Entkopplung zu erreichen. Beim Entwurf der Warteschlange sind die Nachrichtenbestätigung und die Behandlung von Verbrauchsfehlern sehr wichtige Verbindungen. In diesem Artikel wird untersucht, wie Sie PHP und MySQL verwenden, um die Bestätigung von Warteschlangennachrichten und die Behandlung von Verbrauchsfehlern zu implementieren, und es werden spezifische Codebeispiele bereitgestellt. Die Nachrichtenbestätigung befindet sich in der Warteschlange. Nachrichtenbestätigung bedeutet, dass der Verbraucher die Nachricht nach erfolgreicher Verarbeitung an die Warteschlange sendet.

See all articles