首頁 資料庫 mysql教程 Hadoop 新特性、改进、优化和Bug分析系列4:YARN-326, YARN-2

Hadoop 新特性、改进、优化和Bug分析系列4:YARN-326, YARN-2

Jun 07, 2016 pm 04:30 PM
bug hadoop 最佳化 分析 改進 新特性 特性 系列

作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce-nextgen/hadoop-jira-yarn-326-yarn-2/ 本博客的文章集合:http://dongxicheng.org/recommend/ 重大消息:我的H


重大消息:我的Hadoop新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》已经开始在各大网站销售了,购书链接地址: 当当购书网址,京东购书网址,卓越购书网址。新书官方宣传主页: http://hadoop123.com/。

Hadoop jira链接(【注】FS是“Fair Scheduler”的简称,CS是“Capacity Scheduler”的简称):
https://issues.apache.org/jira/browse/YARN-187(让FS支持层级队列组织方式)
https://issues.apache.org/jira/browse/MAPREDUCE-824(让CS支持层级队列组织方式)
https://issues.apache.org/jira/browse/YARN-569(让CS支持抢占)
https://issues.apache.org/jira/browse/YARN-326 (让FS支持多类别资源调度)
https://issues.apache.org/jira/browse/YARN-2 (让CS支持多类别资源调度)
所属范围(新特性、改进、优化或Bug):新特性
修复版本:2.1.0-beta及以上版本
所属分支(Common、HDFS、YARN或MapReduce):YARN、MapReduce
涉及模块:resourcescheduler

本篇文章涉及到的jira链接比较多,主要是Hadoop调度器新特性方面的增加。Capacity Scheduler和Fair Scheduler是Hadoop中最著名的两个多用户资源调度器,最初诞生于不同的公司,有着不同的设计理念的特色,但随着时间的迁移,这两个调度器已经变得非常的类似,截至目前为止,个人认为,框架方面基本一致,但支持的调度策略方面,Fair Scheduler要多于Capacity Scheduler,由于Fair Schduler每个队列可独立选择自己的调度模式,包括fifo、fair和drf,因此可以说,Fair Schduler包含了Capacity Scheduler(Fair Scheduler中将所有队列的调度模式调为fifo即可)。下面就这两个调度器的几个重大特性进行介绍(支持层次队列组织方式、支持资源抢占和支持多类别资源调度):

(1) 支持层次(树状)队列组织方式

在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%

}

这就引出来层级队列组织方式(更详细的介绍,可阅读我的这篇文章:Hadoop层级队列组织方式,http://dongxicheng.org/mapreduce/hadoop-hierarchy-queues/)。目前为止,Hadoop 2.0完全支持层次队列组织方式,且Fair Scheduler和Capacity Schduler均由很好的支持(具体查看:YARN-187,MAPREDUCE-824)。

(2)支持资源抢占

YARN作为一个资源管理系统,对资源的分配和回收是其最基本的功能之一。资源抢占功能使得YARN能够根据集群资源分布和应用程序优先级动态调整资源分配量。最开始时,只有Fair Schduler支持资源抢占,随着资源抢占功能的需求急迫性,Capacity也正在企图加入资源抢占功能(具体查看YARN-569)。

(3)支持多类别资源调度

在MRv1中,为了简化调度器设计,Hadoop将多维度资源简化为一维度资源slot,进而将对CPU、内存等具体资源的调度问题转化为slot这种抽象资源的调度(参考我的Hadoop书籍《Hadoop技术内幕:深入理解MapReduce基本架构和设计与原理》6.7节“Hadoop资源管理”)。基于slot的调度存在各种各样的问题,比如粗粒度调度导致资源分配模糊、资源浪费严重(存在资源内碎片)等,而YARN则从根本上解决了该问题,YARN不再对资源进行简化,而是直接对具体资源,比如内存、CPU等,进行调度。在YARN最早版本中,仅支持内存一种资源的调度,后来在YARN-2(https://issues.apache.org/jira/browse/YARN-2)中引入了对CPU资源的调度。由于调度与资源隔离是同时使用的,缺一不可,而资源隔离采用了cgroup,而cgroup对CPU和内存之外的资源隔离并不是十分成熟(需要使用更高更新的linux内核,这个对很多公司来说不容易),因此,Hadoop要等待一段时间才会增加对其他资源的调度和隔离。对于多类别资源的调度,目前而言,使用最广泛的仍然是源自mesos的DRF调度机制(参考我的这篇文章:Apache Mesos调度机制,http://dongxicheng.org/apache-mesos/mesos-scheduler/),该机制是从传统的Max-min调度策略基础上扩展而来的,非常适合多用户多队列共享资源池的场景。关于Fair Scheduler和CapacityScheduler的DRF实现,可参考:YARN-326和YARN-2。

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

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-jira-yarn-326-yarn-2/

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

本博客的文章集合:http://dongxicheng.org/recommend/


Copyright © 2013
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 Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

蘋果iOS18bug匯總 蘋果iOS18bug匯總 Jun 14, 2024 pm 01:48 PM

隨著蘋果WWDC發表會2024圓滿落幕,不僅揭曉了macos15,其中最受關注的還是蘋果iOS18新系統的更新,雖然有很多新功能出現,但是作為蘋果iOS18首版不免讓人糾結是否有必要升級蘋果iOS18,在最新發表的蘋果iOS18中又有哪些BUG存在呢?經過真實的使用測評,以下是蘋果iOS18bug匯總,一起來看看。目前有許多iPhone用戶都搶先升級到了iOS18.但各種系統Bug讓人難受。有部落客表示,升級iOS18要謹慎,因為「Bug多到飛起」。部落客表示,如果你的iPhone是

小米 15 系列全代號曝光:Dada、Haotian、Xuanyuan 小米 15 系列全代號曝光:Dada、Haotian、Xuanyuan Aug 22, 2024 pm 06:47 PM

小米15系列預計10月正式發布,其全系列代號已在外媒MiCode程式碼庫曝光。其中,旗艦級小米15Ultra代號為"Xuanyuan"(意為"軒轅"),此名源自中國神話中的黃帝,象徵尊貴。小米15的代號為"Dada",而小米15Pro則以"Haotian"(意為"昊天")為名。小米15SPro內部代號為"dijun",暗指《山海經》創世神帝俊。小米15Ultra系列涵蓋

C++ 程式最佳化:時間複雜度降低技巧 C++ 程式最佳化:時間複雜度降低技巧 Jun 01, 2024 am 11:19 AM

時間複雜度衡量演算法執行時間與輸入規模的關係。降低C++程式時間複雜度的技巧包括:選擇合適的容器(如vector、list)以最佳化資料儲存和管理。利用高效演算法(如快速排序)以減少計算時間。消除多重運算以減少重複計算。利用條件分支以避免不必要的計算。透過使用更快的演算法(如二分搜尋)來優化線性搜尋。

華為 Mate 60 系列最佳入手時機,新增 AI 消除 + 影像升級,更可享秋日禮遇活動 華為 Mate 60 系列最佳入手時機,新增 AI 消除 + 影像升級,更可享秋日禮遇活動 Aug 29, 2024 pm 03:33 PM

自去年华为Mate60系列开售以来,我个人就一直将Mate60Pro作为主力机使用。在将近一年的时间里,华为Mate60Pro经过多次OTA升级,综合体验有了显著提升,给人一种常用常新的感觉。比如近期,华为Mate60系列就再度迎来了影像功能的重磅升级。首先是新增AI消除功能,可以智能消除路人、杂物并对空白部分进行自动补充;其次是主摄色准、长焦清晰度均有明显升级。考虑到现在是开学季,华为Mate60系列还推出了秋日礼遇活动:购机可享至高800元优惠,入手价低至4999元。常用常新的产品力加上超值

Golang中有類似類別的物件導向特性嗎? Golang中有類似類別的物件導向特性嗎? Mar 19, 2024 pm 02:51 PM

在Golang(Go語言)中並沒有傳統意義上的類別的概念,但它提供了一種稱為結構體的資料類型,透過結構體可以實現類似類別的物件導向特性。在本文中,我們將介紹如何使用結構體實現物件導向的特性,並提供具體的程式碼範例。結構體的定義和使用首先,讓我們來看看結構體的定義和使用方式。在Golang中,結構體可以透過type關鍵字定義,然後在需要的地方使用。結構體中可以包含屬

優化WIN7系統開機啟動項目的操作方法 優化WIN7系統開機啟動項目的操作方法 Mar 26, 2024 pm 06:20 PM

1.在桌面上按組合鍵(win鍵+R)開啟運行窗口,接著輸入【regedit】,回車確認。 2.開啟登錄編輯程式後,我們依序點選展開【HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer】,然後看目錄裡有沒有Seri​​alize項,如果沒有我們可以點選右鍵Explorer,新建項,並將其命名為Serialize。 3.接著點選Serialize,然後在右邊窗格空白處點選滑鼠右鍵,新建一個DWORD(32)位元值,並將其命名為Star

分析騰訊主要的程式語言是否為Go 分析騰訊主要的程式語言是否為Go Mar 27, 2024 pm 04:21 PM

標題:騰訊主要的程式語言是否為Go:一項深入分析騰訊作為中國領先的科技公司,在程式語言的選擇上一直備受關注。近年來,有人認為騰訊主要採用Go作為主要的程式語言。本文將對騰訊主要的程式語言是否為Go進行深入分析,並給出具體的程式碼範例來支持這一觀點。一、Go語言在騰訊的應用Go是一種由Google開發的開源程式語言,它的高效性、並發性和簡潔性受到眾多開發者的喜

解決 PHP 函數效率低的方法有哪些? 解決 PHP 函數效率低的方法有哪些? May 02, 2024 pm 01:48 PM

PHP函數效率最佳化的五大方法:避免不必要的變數複製。使用引用以避免變數複製。避免重複函數呼叫。內聯簡單的函數。使用數組優化循環。

See all articles