您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)分布式集群調(diào)度框架Mesos架構(gòu)及實(shí)現(xiàn)的示例分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
簡(jiǎn)介
Mesos是一個(gè)在多個(gè)集群計(jì)算框架中共享集群資源的管理系統(tǒng),它提高了集群資源利用率,避免了每個(gè)計(jì)算框架數(shù)據(jù)復(fù)制。
通過分布式兩層調(diào)度模型
實(shí)現(xiàn)了細(xì)粒度的資源分配:由Mesos決定為每個(gè)框架提供多少資源,框架決定接受哪些資源,以及把計(jì)算任務(wù)分配到哪里去執(zhí)行。
2010年代計(jì)算框架百花齊放,相繼出現(xiàn)MapReduce[1]、MPI、Dryad、Pregel等。很明顯,新的集群計(jì)算框架還會(huì)不斷涌現(xiàn),不存在滿足所有應(yīng)用需求的集群計(jì)算框架
,因此企業(yè)、研究機(jī)構(gòu)會(huì)在同一個(gè)集群中運(yùn)行多個(gè)計(jì)算框架。由于不同的計(jì)算框架是相互獨(dú)立的,導(dǎo)致不同框架間共享數(shù)據(jù)和計(jì)算資源變得異常困難。
Mesos實(shí)現(xiàn)輕量級(jí)的資源共享層,保證不同框架間細(xì)粒度的資源共享。它不僅要滿足不同計(jì)算框架的需求,還要能夠滿足未來一些新的計(jì)算框架的需求。因此對(duì)Mesos的擴(kuò)展性和效率有較高要求。
一個(gè)可選方案是中心化調(diào)度器,這種方案過于復(fù)雜、無法滿足所有計(jì)算框架的需求,而且會(huì)帶來大量的重構(gòu),并不現(xiàn)實(shí)。
Mesos提出一種新的調(diào)度抽象resource offer
,Mesos決定提供多少資源給框架,框架決定接受哪些資源,將任務(wù)和資源匹配。這是一種去中心化的調(diào)度模型,它簡(jiǎn)單易于實(shí)現(xiàn),而且給Mesos帶來了很高的擴(kuò)展性和健壯性,并且還有兩個(gè)額外的優(yōu)勢(shì):
1.支持運(yùn)行同一個(gè)框架的不同版本2.易于新框架的開發(fā)
最初的目的是為不同框架提供可擴(kuò)展、彈性的內(nèi)核,使得他們高效共享集群。但是考慮到計(jì)算框架的多樣性和快速迭代,設(shè)計(jì)哲學(xué)演進(jìn)為實(shí)現(xiàn)最小化的接口,保證框架間高效的資源共享,因此將任務(wù)調(diào)度和執(zhí)行交給框架去做。
Mesos master通過resource offer
模型,將集群中的可用資源提供給框架,提供多少資源基于不同的策略,比如公平策略、優(yōu)先級(jí)策略等。同時(shí)還提供插件,允許框架實(shí)現(xiàn)自己的策略。
每個(gè)計(jì)算框架包括兩部分:scheduler(調(diào)度器)和executor(執(zhí)行器)。調(diào)度器注冊(cè)到Mesos master便可接收資源,執(zhí)行器運(yùn)行在salve節(jié)點(diǎn)上負(fù)責(zé)執(zhí)行具體的任務(wù)??蚣懿粫?huì)指定自己需要多少資源,而是有Mesos master上報(bào),合適就使用,不合適就拒絕。
上述的機(jī)制存在一個(gè)問題,如果一個(gè)框架需要的資源很多,遲遲得不到滿足,就會(huì)出現(xiàn)饑餓
(概率很低)。為此Mesos為框架提供filters機(jī)制,框架會(huì)告知Mesos自己明確會(huì)拒絕某些資源。
Mesos master只保留少量必須的狀態(tài)信息,這樣當(dāng)master崩潰時(shí),新的master可以根據(jù)slave和框架上的信息快速恢復(fù)。master只包含slave、框架和運(yùn)行中的任務(wù)這三種信息。
運(yùn)行多個(gè)master時(shí),使用zookeeper實(shí)現(xiàn)leader選舉。
Mesos基于C++實(shí)現(xiàn),借用了很多現(xiàn)有的技術(shù)成果,比如C++ actor編程模型庫libprocess[2]、ZooKeeper、Linux Container[3]等。
為了證明Mesos的輕量、易于框架的開發(fā),文章作者基于Mesos開發(fā)了面向機(jī)器學(xué)習(xí)中iterative jobs
的框架Spark,這就是后來名震業(yè)界的大數(shù)據(jù)處理框架。得益于Mesos的優(yōu)良設(shè)計(jì),Spark原型只用了大約1300行代碼。
Mesos的出現(xiàn)有其特定的背景和目的,其解決的是行業(yè)內(nèi)某一領(lǐng)域的痛點(diǎn)問題。Mesos實(shí)現(xiàn)了分布式兩級(jí)調(diào)度模型,使得不同的計(jì)算框架可以使用同一個(gè)計(jì)算機(jī)集群中的資源,提高了集群資源的利用率。
另外,這一框架也促使另一個(gè)著名框架Spark的誕生。
Mesos來自于UC Berkeley AMPLab,從這篇論文中可以看到UC Berkeley計(jì)算機(jī)研究的顯著特點(diǎn):理論和實(shí)踐相結(jié)合
,不紙上談兵
。這要求研究人員(導(dǎo)師、博士、碩士)不僅要有一流的研究能力,還要有很強(qiáng)的編程實(shí)踐能力。
關(guān)于分布式集群調(diào)度框架Mesos架構(gòu)及實(shí)現(xiàn)的示例分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。