Mesos是什么
問題1. 集群部署主要在VM或者在物理層靜態(tài)的進行資源劃分, 如下圖, 劃分每3臺主機作為一個集群運行各自的應(yīng)用
此時從時間維度觀察3個集群的資源利用情況, 如下圖
可以觀察到整個時間軸上, 整體資源利用率并不很高, 但是假設(shè)9臺機器組成共享資源池, 每個應(yīng)用在執(zhí)行過程中從資源池中申請需要的資源并執(zhí)行, 此時整體資源利用率相對提高
問題2. 分布式系統(tǒng)通過聯(lián)合調(diào)度進行任務(wù)的執(zhí)行融柬,由協(xié)調(diào)器(負責(zé)協(xié)調(diào)在集群中執(zhí)行想要運行的代碼)和Worker(具體的功能代碼)組成
在分布式系統(tǒng)中, 協(xié)調(diào)器與具體業(yè)務(wù)功能無關(guān)且各系統(tǒng)的協(xié)調(diào)器功能類似, 是否可以將協(xié)調(diào)器進行抽象并統(tǒng)一負責(zé)協(xié)調(diào)所有集群的任務(wù)執(zhí)行, 實現(xiàn)一個分布式的協(xié)調(diào)系統(tǒng)
Mesos是一個分布式的集群管理框架, 宗旨為嘗試和提高集群的利用率和性能条辟、提供通用的分布式系統(tǒng)框架.
Mesos框架本身只負責(zé)資源的分配, 而不負責(zé)資源的調(diào)度, 每個業(yè)務(wù)功能的調(diào)度器和mesos master API進行通信, mesos master根據(jù)剩余資源調(diào)度mesos slave執(zhí)行相應(yīng)的任務(wù)
好處:
- 可以在一批機器上部署執(zhí)行多個分布式系統(tǒng), 動態(tài)劃分(解決靜態(tài)資源劃分問題)和共享資源, 并且不用為每個分布式實現(xiàn)一套協(xié)調(diào)功能
- 提供統(tǒng)一的分布式功能集(故障檢測桐汤、分布式任務(wù)、任務(wù)啟動酣胀、任務(wù)監(jiān)控、結(jié)束任務(wù)、清理任務(wù)等)
架構(gòu)
說明:
- mesos由framework袱吆、master相恃、slave組成, fromework由調(diào)度器和執(zhí)行器組成, 使用zookeeper來維護集群的高可用性和配置信息
- mesos提供資源的抽象提供雙層調(diào)度系統(tǒng), master主要負責(zé)從slave收集資源并根據(jù)資源分配算法以resource offer(list<slaveid, cpu, mem, port等>)的方式提供的框架的調(diào)度器, 調(diào)度器接收resource offer并決定如何使用, 可以選擇接受或者拒絕資源, 當全責(zé)接收資源時則發(fā)送TaskInfo(<list<slaveid, cpu, mem, port等>)信息給master辜纲,master經(jīng)過檢查下發(fā)給slave并由slave調(diào)用TaskInfo中指定的執(zhí)行器來執(zhí)行具體的任務(wù)。 流程圖如下圖:
Mesos用來干什么
先看下Mesos架構(gòu)圖:
將Mesos生態(tài)組件和Linux操作系統(tǒng)對比:
可以用來構(gòu)建分布式的操作"系統(tǒng)", 即數(shù)據(jù)中心操作系統(tǒng)(DCOS), mesosphere公司使用mesos構(gòu)建了Mesosphere DCOS
版本
預(yù)言使用版本為: 0.24.0 (9月2日)
目前最新release版為: 0.24.1 (9月25日)
目前最新rc版為: 0.25.rc2 (10月6日)
每10天一個測試版, 每20天一個修正版本, 每40天一個子版本
開發(fā)語言&協(xié)議
開發(fā)語言: C++
協(xié)議: Apache License Version 2.0
Mesos擴展模塊開發(fā): C++ 若想使用Python,Java,GO等其他語言,需要使用C++實現(xiàn)代理
框架開發(fā): Python, Java, Go等