Apache Mesos是什么?

jopen 9年前發布 | 155K 次閱讀 集群/負載均衡 Apache Mesos

Apache Mesos的官方網站的描述

分布式系統內核
Mesos采用與Linux kernerl相同的機制,只是運行在不同的抽象層次上。Mesos kernel利用資源管理和調度的API在整個數據中心或云環境中運行和提供引用(例如,Hadoop,Spark,Kafaka,Elastic Search)。即Apache Mesos在整個數據中心根據資源利用率和資源占用情況,在整個數據中心內進行任務的調度 。
主要特性:

  1. 10,000s節點規模;
  2. 利用Zookeeper實現master和slave的高可用;
  3. 支持Docker容器;
  4. 任務之間利用linux容器進行隔離
  5. 多種資源調度(內存,CPU,磁盤,端口)
  6. 支持JAVA,Python和C++ API
  7. 基于WEBUI可視化集成狀態查看

提出Mesos論文中的摘要

Mesos是支持在多種計算集群框架(frameworks)間共享服務器集群的平臺,利用HADOOP,MPI。提高了集群資源占用率,避免了每 種框架的數據重復。Mesos能夠鏡像細粒度的資源共享,通過輪流的讀取磁盤數據是的frameworks能從本地獲取數據。為了滿足復雜的資源調度方 法,Mesos引入了稱為資源提供的(resource offer)的2層資源調度機制。Mesos決定多少資源分配給frameworks,frameworks決定接受多少資源和決定哪個任務使用多少資 源。

Mesos的目標場景

細粒度的在不同的frameworks之間共享資源。

Apache Mesos架構

Apache Mesos是什么?
Mesos由Mesos master,Mesos slave即其上的任務組成。Mesos master通過resource offer的方式在不同的應用間進行資源共享。每個resource offer包含一個列表。Master按照給定的策略,為每個framework分配資源,利用公平調度、按優先級調度。Mesos提供了插件機制來擴 展,資源分配策略。
運行于Mesos之上的framework有兩部分組成:注冊到Mesos中的調度器、運行在slave節點的任務執行進程。Master決定分配多少資 源每個framework,framework調度器決定使用master提供的資源哪些資源,然后framework將需要運行任務的描述傳遞給 Mesos。接著,Mesos在指定的slave上運行任務。

Resource offer的示例

Apache Mesos是什么?

  1. Slave1上報其有4 cpu和4 GB內存空閑。然后,Mesos mater上的資源調度器被喚醒,調度器決定所有的資源都提供給framework1
  2. Mesos master發送resource offer描述給frmework1;
  3. Frame work1通知Mesos master,有占用的任務1和占用的任務2要運行在slave上;
  4. Master發送任務給slave,slave分配資源兩個任務,然后運行兩個任務。由于還剩余,這可能會分配給Framework2. 還有很贊的一點:Mesos提供了一種拒絕機制,來滿足Mesos在知道frmework資源要求的情況下來進行resource offer。

總結

Mesos的核心思想是提供2-layer調度機制,來完成在不同的framework之間進行資源共享。用以滿足在同一個集群內,同時運行spark,hadoop等不同計算集群的需求。同時,通過zookeeper來保證高可用。

參考:
1http://mesos.berkeley.edu/mesos_tech_report.pdf
2http://mesos.apache.org/documentation/latest/mesos-architecture/

原文鏈接: http://openstack.wiaapp.com/?p=1287

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!