1. 程式人生 > >幹貨|Mesos分布式集群管理最佳實踐

幹貨|Mesos分布式集群管理最佳實踐

整理 技術分享 tor 通過 新的 mar 推廣 客戶 報告

Mesos最開始由加州大學伯克利分校開發,推廣於美國版的微博Twitter
  
  是Apache下的開源分布式資源管理框架,
  
  它被稱為分布式系統的內核,相當於人的大腦。
  
  Mesos-Master是整個系統的“大腦”,負責管理接入Mesos的各個framework(由frameworks_manager管理)和slave(由slaves_manager管理),並將slave上的資源按照某種策略分配給framework(由獨立插拔模塊Allocator管理)。
技術分享圖片
  
  示意圖
  
  Mesos-Slave負責接受並執行來自“大腦”的命令。Mesos-Slave將自己的資源量發送給“大腦”,由大腦來分配給Framework。
  
  Framework是指外部的計算框架。需要通過調度器,以註冊的方式接入Mesos,獲得資源。再把獲得的資源,由自己的調度器分配給框架中的任務。
技術分享圖片
  
  示意圖
  
  當前Mesos支持三中語言編寫的調度器,分別是C++、Java、Python。為了統一,Mesos用C++組成了的一個調度驅動drive。Framework(外部的計算框架)可以通過這個接口來註冊,獲得資源。
  
  Executor主要用於啟動框架內部的task。由於不同的框架,啟動task的接口或者方式不同,當一個新的框架要接入mesos時,需要編寫一個Executor,告訴Mesos如何啟動該框架中的task
技術分享圖片
  
  展示了Mesos的重要組成部分,Mesos由一個master進程管理運行著每個客戶端節點的slave進程和跑任務的Mesos計算框架。
  
  Mesos進程通過Framework(計算框架)可以很細致的管理cpu和內存等,從而提供資源。master通過插件機制新增額一個allocation模塊使之分配資源更簡單方便。

  技術分享圖片
  圖1.2
  
  流程步驟
  
  1、slave1報告給master他擁有4核cpu和4G剩余內存,Marathon調用allocation政策模塊,告訴slave1計算框架1應該被提供可用的資源。
  
  2、master給計算框架1發送一個在slave上可用的資源描述。
  
  3、計算框架的調度器回復給master運行在slave上兩個任務相關信息,任務1需要使用2個CPU,內存1G,任務2需使用1個CPU,2G內存。

  
  4、最後,master發送任務給slave,分配適當的給計算框架執行器,繼續發起兩個任務(圖1.1-2虛線處),因為任有1個CPU和1G內存未分配,allocation模塊現在或許提供剩下的資源給計算框架2。
  
  除此之外,當任務完成,新的資源成為空閑時,這個資源提供程序將會重復。
  
  這些非常有用的資料,是由金信潤天的王牌講師“標桿徐”老師進行整理,歡迎大家可以學好架構,找到一份滿意的高薪工作。

幹貨|Mesos分布式集群管理最佳實踐