自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Apache Mesos總體架構(gòu)

開發(fā) 前端
同其他大部分分布式系統(tǒng)一樣,Apache Mesos為了簡化設(shè)計(jì),也是采用了master/slave結(jié)構(gòu),為了解決master單點(diǎn)故障,將master做得盡可能地輕量級,其上面所有的元數(shù) 據(jù)可以通過各個slave重新注冊而進(jìn)行重構(gòu),故很容易通過zookeeper解決該單點(diǎn)故障問題。

1. 前言

同其他大部分分布式系統(tǒng)一樣,Apache Mesos為了簡化設(shè)計(jì),也是采用了master/slave結(jié)構(gòu),為了解決master單點(diǎn)故障,將master做得盡可能地輕量級,其上面所有的元數(shù) 據(jù)可以通過各個slave重新注冊而進(jìn)行重構(gòu),故很容易通過zookeeper解決該單點(diǎn)故障問題。

什么是apache mesos?參考:《統(tǒng)一資源管理與調(diào)度平臺(系統(tǒng))介紹》,本文分析基于Mesos SVN Revision 1327410)

2. Apache mesos中的基本術(shù)語解釋

(1)    Mesos-master:Mesos master,主要負(fù)責(zé)管理各個framework和slave,并將slave上的資源分配給各個framework

(2)    Mesos-slave:Mesos slave,負(fù)責(zé)管理本節(jié)點(diǎn)上的各個mesos-task,比如:為各個executor分配資源

(3)    Framework:計(jì)算框架,如:Hadoop,Spark等,通過MesosSchedulerDiver接入Mesos

(4)    Executor:執(zhí)行器,安裝到mesos-slave上,用于啟動計(jì)算框架中的task。

當(dāng)用戶試圖添加一種新的計(jì)算框架到Mesos中時,需要實(shí)現(xiàn)一個Framework scheduler和executor以接入Mesos。

3. 總體架構(gòu)

Apache Mesos由四個組件組成,分別是Mesos-master,mesos-slave,framework和executor。

Mesos-master是整個系統(tǒng)的核心,負(fù)責(zé)管理接入mesos的各個framework(由frameworks_manager管理)和 slave(由slaves_manager管理),并將slave上的資源按照某種策略分配給framework(由獨(dú)立插拔模塊Allocator管 理)。

Mesos-slave負(fù)責(zé)接收并執(zhí)行來自mesos-master的命令、管理節(jié)點(diǎn)上的mesos-task,并為各個task分配資源。 mesos-slave將自己的資源量發(fā)送給mesos-master,由mesos-master中的Allocator模塊決定將資源分配給哪個 framework,當(dāng)前考慮的資源有CPU和內(nèi)存兩種,也就是說,mesos-slave會將CPU個數(shù)和內(nèi)存量發(fā)送給mesos-master,而用 戶提交作業(yè)時,需要指定每個任務(wù)需要的CPU個數(shù)和內(nèi)存量,這樣,當(dāng)任務(wù)運(yùn)行時,mesos-slave會將任務(wù)放到包含固定資源的linux container中運(yùn)行,以達(dá)到資源隔離的效果。很明顯,master存在單點(diǎn)故障問題,為此,mesos采用了zookeeper解決該問題。

Framework是指外部的計(jì)算框架,如Hadoop,Mesos等,這些計(jì)算框架可通過注冊的方式接入mesos,以便mesos進(jìn)行統(tǒng)一管理 和資源分配。Mesos要求可接入的框架必須有一個調(diào)度器模塊,該調(diào)度器負(fù)責(zé)框架內(nèi)部的任務(wù)調(diào)度。當(dāng)一個framework想要接入mesos時,需要修 改自己的調(diào)度器,以便向mesos注冊,并獲取mesos分配給自己的資源, 這樣再由自己的調(diào)度器將這些資源分配給框架中的任務(wù),也就是說,整個mesos系統(tǒng)采用了雙層調(diào)度框架:***層,由mesos將資源分配給框架;第二層, 框架自己的調(diào)度器將資源分配給自己內(nèi)部的任務(wù)。當(dāng)前Mesos支持三種語言編寫的調(diào)度器,分別是C++,java和python,為了向各種調(diào)度器提供統(tǒng) 一的接入方式,Mesos內(nèi)部采用C++實(shí)現(xiàn)了一個MesosSchedulerDriver(調(diào)度器驅(qū)動器),framework的調(diào)度器可調(diào)用該 driver中的接口與Mesos-master交互,完成一系列功能(如注冊,資源分配等)。

Executor主要用于啟動框架內(nèi)部的task。由于不同的框架,啟動task的接口或者方式不同,當(dāng)一個新的框架要接入mesos時,需要編寫 一個executor,告訴mesos如何啟動該框架中的task。為了向各種框架提供統(tǒng)一的執(zhí)行器編寫方式,Mesos內(nèi)部采用C++實(shí)現(xiàn)了一個 MesosExecutorDiver(執(zhí)行器驅(qū)動器),framework可通過該驅(qū)動器的相關(guān)接口告訴mesos啟動task的方法。

4. 參考資料

(1)Mesos主頁:http://www.mesosproject.org/index.html

(2)Mesos代碼:https://svn.apache.org/repos/asf/incubator/mesos/trunk/

(3)Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center. B. Hindman, A. Konwinski, M. Zaharia, A. Ghodsi, A.D. Joseph, R. Katz, S. Shenker and I. Stoica, NSDI 2011, March 2011.

責(zé)任編輯:陳四芳 來源: dongxicheng.org
相關(guān)推薦

2014-02-14 15:12:41

ApacheMesos架構(gòu)

2014-01-06 17:13:59

ApacheMesos

2014-01-06 17:24:44

ApacheMesos

2014-01-06 17:09:10

ApacheMesos

2021-04-08 13:51:48

Apache Meso開發(fā)者項(xiàng)目

2014-01-06 16:38:29

MesosApache

2017-02-27 09:03:37

Mesos架構(gòu)源碼

2014-01-06 11:26:38

ApacheMesos

2014-01-06 17:41:44

ApacheMesos

2015-01-19 13:33:44

KubernetesMesos計(jì)算集群

2014-01-06 11:23:54

Mesos設(shè)計(jì)架構(gòu)

2017-11-28 09:32:57

KubernetesDockerMesos Compa

2017-04-12 11:02:50

Apache Meso資源利用容器

2016-07-14 15:15:32

華為

2016-07-14 16:27:06

2016-07-15 11:00:01

華為

2016-07-14 17:10:24

華為

2016-07-26 15:15:39

2022-04-25 21:43:06

物聯(lián)網(wǎng)

2013-09-02 17:46:41

MVC架構(gòu)設(shè)計(jì)MVC架構(gòu)設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號