Rumah pangkalan data tutorial mysql Hadoop层级队列组织方式

Hadoop层级队列组织方式

Jun 07, 2016 pm 04:29 PM
hadoop pengarang Hierarki Sina Cara menyusun beratur

作者: 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%
}
Salin selepas log masuk

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

(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>
Salin selepas log masuk

管理员可在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>
Salin selepas log masuk

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

本文链接地址: 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:
)
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL Aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL Oct 15, 2023 pm 02:26 PM

Ringkasan aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL: Dengan pembangunan berterusan aplikasi web, permintaan untuk pemprosesan serentak yang tinggi dan kebolehpercayaan sistem semakin tinggi dan lebih tinggi. Sebagai penyelesaian, teknologi baris gilir digunakan secara meluas dalam PHP dan MySQL untuk melaksanakan kelewatan mesej dan fungsi cuba semula mesej. Artikel ini akan memperkenalkan aplikasi teknologi baris gilir dalam PHP dan MySQL, termasuk prinsip asas baris gilir, kaedah menggunakan baris gilir untuk melaksanakan kelewatan mesej dan kaedah menggunakan baris gilir untuk melaksanakan percubaan semula mesej, dan memberi

Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Jan 09, 2024 pm 05:02 PM

Analisis Prestasi dan Strategi Pengoptimuman JavaQueue Queue Ringkasan: Queue (Queue) ialah salah satu struktur data yang biasa digunakan di Java dan digunakan secara meluas dalam pelbagai senario. Artikel ini akan membincangkan isu prestasi baris gilir JavaQueue dari dua aspek: analisis prestasi dan strategi pengoptimuman serta memberikan contoh kod khusus. Baris Gilir Pengenalan ialah struktur data masuk dahulu keluar dahulu (FIFO) yang boleh digunakan untuk melaksanakan mod pengeluar-pengguna, baris gilir tugas kumpulan benang dan senario lain. Java menyediakan pelbagai pelaksanaan baris gilir, seperti Arr

Terokai aplikasi Java dalam bidang data besar: pemahaman tentang Hadoop, Spark, Kafka dan tindanan teknologi lain Terokai aplikasi Java dalam bidang data besar: pemahaman tentang Hadoop, Spark, Kafka dan tindanan teknologi lain Dec 26, 2023 pm 02:57 PM

Timbunan teknologi data besar Java: Fahami aplikasi Java dalam bidang data besar, seperti Hadoop, Spark, Kafka, dll. Apabila jumlah data terus meningkat, teknologi data besar telah menjadi topik hangat dalam era Internet hari ini. Dalam bidang data besar, kita sering mendengar nama Hadoop, Spark, Kafka dan teknologi lain. Teknologi ini memainkan peranan penting, dan Java, sebagai bahasa pengaturcaraan yang digunakan secara meluas, juga memainkan peranan yang besar dalam bidang data besar. Artikel ini akan memberi tumpuan kepada aplikasi Java secara besar-besaran

Pelan pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Pelan pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Oct 15, 2023 am 09:15 AM

Pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Pengenalan Dalam pembangunan aplikasi web moden, baris gilir tugas adalah teknologi yang sangat penting. Melalui baris gilir, kita boleh beratur beberapa tugasan yang perlu dilaksanakan di latar belakang, dan mengawal masa pelaksanaan dan susunan tugas melalui penjadualan tugas. Artikel ini akan memperkenalkan cara melaksanakan pemantauan dan penjadualan tugas dalam PHP dan MySQL, serta menyediakan contoh kod khusus. 1. Prinsip kerja Baris gilir ialah struktur data masuk dahulu keluar (FIFO) yang boleh digunakan untuk

Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Sep 13, 2023 am 11:39 AM

Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Dengan perkembangan Internet, e-mel telah menjadi salah satu kaedah komunikasi yang sangat diperlukan dalam kehidupan dan pekerjaan harian manusia. Walau bagaimanapun, apabila perniagaan berkembang dan bilangan pengguna meningkat, menghantar e-mel secara langsung boleh membawa kepada kemerosotan prestasi pelayan, kegagalan penghantaran e-mel dan masalah lain. Untuk menyelesaikan masalah ini, anda boleh menggunakan sistem baris gilir mel untuk menghantar dan mengurus e-mel melalui baris gilir bersiri. Prinsip pelaksanaan sistem baris gilir mel adalah seperti berikut: Apabila mel dimasukkan ke dalam baris gilir, apabila perlu menghantar mel, ia tidak lagi secara langsung

Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir Kod C++ untuk membalikkan laluan dalam pepohon carian binari menggunakan baris gilir Sep 14, 2023 pm 07:21 PM

Sebagai contoh, memandangkan pepohon carian binari, kita perlu membalikkan laluannya daripada kunci tertentu. Cara untuk mencari penyelesaian Dalam pendekatan ini kita akan membuat baris gilir dan menolak semua nod sehingga kita mendapat nod akar. p>Contoh #include<bits/stdc++.h>usingnamespacestd;structnode{ intkey; structnode*left,*right;};structnode*newNode(intitem){&nb

Kaedah pengoptimuman pemprosesan beratur dan tak segerak dalam sistem jualan kilat PHP Kaedah pengoptimuman pemprosesan beratur dan tak segerak dalam sistem jualan kilat PHP Sep 19, 2023 pm 01:45 PM

Kaedah pengoptimuman pemprosesan beratur dan tak segerak dalam sistem jualan kilat PHP Dengan perkembangan pesat Internet, pelbagai aktiviti keutamaan pada platform e-dagang, seperti jualan kilat dan jualan tergesa-gesa, turut menjadi tumpuan pengguna. Walau bagaimanapun, permintaan pengguna serentak yang tinggi ini merupakan cabaran besar untuk aplikasi PHP tradisional. Untuk meningkatkan prestasi dan kestabilan sistem dan menyelesaikan tekanan yang disebabkan oleh permintaan serentak, pembangun perlu mengoptimumkan sistem jualan kilat. Artikel ini akan menumpukan pada kaedah pengoptimuman yang dicapai melalui baris gilir dan pemprosesan tak segerak dalam sistem jualan kilat PHP, dan memberikan contoh kod khusus.

Bagaimana untuk melaksanakan pengesahan mesej baris gilir dan pengendalian kegagalan penggunaan dalam PHP dan MySQL Bagaimana untuk melaksanakan pengesahan mesej baris gilir dan pengendalian kegagalan penggunaan dalam PHP dan MySQL Oct 15, 2023 pm 01:46 PM

Kaedah pelaksanaan pengesahan mesej baris gilir dan pengendalian kegagalan penggunaan dalam PHP dan MySQL Queue ialah mekanisme penghantaran mesej biasa, yang boleh membantu menyelesaikan masalah konkurensi tinggi dalam sistem dan mencapai pemprosesan dan penyahgandingan tak segerak. Dalam reka bentuk baris gilir, pengesahan mesej dan pengendalian kegagalan penggunaan adalah pautan yang sangat penting. Artikel ini akan meneroka cara menggunakan PHP dan MySQL untuk melaksanakan pengesahan mesej baris gilir dan pengendalian kegagalan penggunaan, dan menyediakan contoh kod khusus. Pengesahan mesej berada dalam baris gilir Pengesahan mesej bermakna selepas pengguna berjaya memproses mesej, ia menghantarnya ke baris gilir.

See all articles