1. 程式人生 > >Apache Mesos模組間通訊架構

Apache Mesos模組間通訊架構

  1. 介紹
    Mesos主要由四種元件組成,分別是mesos-master,mesos-save,scheduler和Executor,各個元件之間採用了基於protocal buffer的actor model進行通訊(採用開源庫libprocess)。也就是說,各個模組分別是一個server(實際上是socket server),分別監聽來自其他模組的訊息,一旦收到某個訊息後,便會呼叫相應的訊息處理函式進行處理。
  2. 通訊框架概述
    對於某個計算框架(如Hadoop,Spark等),如果想接入Mesos,需要編寫兩個元件,分別是FrameworkSchduler和FrameworkExecutor,這兩個元件分別實現Scheduler和Executor介面,並分別通過SchedulerDriver和ExecutorDriver接入Mesos,如圖中黑色虛線,表示這幾個元件之間通過函式呼叫產生關係。
    其他元件,即mesos-master,mesos-save,SchedulerProcess和ExecutorProcess之間則通過訊息機制進行通訊(使用libprocess開源庫)。
    (1)【SchedulerProcess與mesos-master】:mesos-master為各個framework分配資源,這些資源直接傳遞給SchedulerProcess,再由SchedulerProcess呼叫 FrameworkScheduler的相關函式,由FrameworkScheduler將這些資源分配給框架中的任務,並返回給mesos-master,由mesos-master轉發給相應的mesos-slave。
    (2)【SchedulerProcess與Mesos-slave】:如果SchedulerProcess中儲存了Mesos-slave的地址,則直接將相關訊息傳送給Mesos-slave,不必再由mesos-master轉發。
    (3)【Mesos-master與Mesos-slave】:Mesos-master管理mesos-slave,如監控slave的健康狀況等
    (4)【Mesos-slave與ExecutorProcess】:Mesos-slave負責管理各個framework的executor,併為executor分配資源等。
    具體如下圖所示。
    這裡寫圖片描述


    這裡寫圖片描述
    這裡寫圖片描述
    這裡寫圖片描述