Mesos配置

Apache Mesos

Mesos和Yarn一樣,是一個(gè)資源統(tǒng)一管理與調(diào)度平臺(tái)

一、Mesos基本術(shù)語

  • 1.master -> 負(fù)責(zé)framework和slave,并將slave上的資源分給framework
  • 2.slave -> 負(fù)責(zé)管理本節(jié)點(diǎn)上的task,并將計(jì)算資源分配給executor
  • 3.framework -> 計(jì)算框架如Hadoop、Spark等,通過SchedulerDriver接入Mesos
  • 4.executor -> 執(zhí)行器,位于salve上,用于執(zhí)行slave中的task

二、框架流程

  • 1.接入Mesos的計(jì)算框架必須有自己的調(diào)度器Scheduler,通過Scheduler來向Mesos的SchedulerDriver接入,向master注冊(cè)
  • 2.framework自己管理框架內(nèi)部的資源調(diào)度,計(jì)算資源向master申請(qǐng)資源,再分配給自己框架內(nèi)部的任務(wù)
  • 3.master通過對(duì)所有slave資源的匯總,通過資源調(diào)度器Allocator根據(jù)某種策略給framework分配計(jì)算資源
  • 4.slave向master報(bào)告自身狀態(tài)和任務(wù)狀態(tài),并啟動(dòng)相應(yīng)框架task的executor,在Linux-Container中運(yùn)行任務(wù)

三、特點(diǎn)

  • 1.輕量級(jí)的master,僅保留了framework和slave的一些狀態(tài),易于重構(gòu),因此采用zookeeper很容易解決HA問題

  • 2.利用Linux-Container隔離CPU與內(nèi)存資源

  • 3.資源分配器比較簡單

四、編譯

軟件 版本
OS Mint-16-64bit
Mesos 0.21.0
  • 1.下載源碼及依賴
$ wget http://www.apache.org/dist/mesos/0.22.1/mesos-0.21.0.tar.gz
$ tar -zxvf mesos-0.21.0.tar.gz
$ sudo apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev
$ cd mesos
$ mkdir build
$ cd build
$ ../configure
$ make
  • 2.問題及解決方案

問題g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report
解決方案:由于內(nèi)存不足編譯失敗,可以切入到編譯失敗的項(xiàng)目目錄下進(jìn)行部分make,然后再做整體make,使用free -m命令查看可用內(nèi)存

最后還是沒有解決編譯失敗的問題,選擇了Mesosphere的二進(jìn)制版本-_-

五、二進(jìn)制版本配置與啟動(dòng)

  • 1.安裝deb包
$ sudo dpkg -i ***.deb
  • 2.修改配置
#進(jìn)入配置目錄
$ cd /usr/local/etc/mesos

#添加masters和slaves文件,文件中每行是master和slave的節(jié)點(diǎn)主機(jī)名或IP地址
$ sudo vi masters
node

$ sudo vi slaves
node

#修改master配置
$ sudo cp mesos-master-env.sh.template mesos-master-env.sh
$ sudo vi mesos-master-env.sh
#添加下面幾行
export MESOS_log_dir=/home/*/disk/mesos/master/log
export MESOS_work_dir=/home/*/disk/mesos/master/work
export MESOS_ZK=zk://node:2181/mesos
export MESOS_quorum=1

#修改slave配置
$ sudo cp mesos-slave-env.sh.template mesos-slave-env.sh
$ sudo vi mesos-slave-env.sh
#添加下面幾行
export MESOS_log_dir=/home/zhy/disk/mesos/slave/log
export MESOS_work_dir=/home/zhy/disk/mesos/slave/work
export MESOS_isolation=cgroups

#修改deploy配置
$ sudo cp mesos-deploy-env.sh.template mesos-deploy-env.sh
$ sudo vi mesos-deploy-env.sh
#無需修改
  • 3.啟動(dòng)Mesos集群
#首先要啟動(dòng)zookeeeper集群
$ cd /usr/zookeeper-3.4.6/bin
$ ./zkServer.sh start

#啟動(dòng)mesos集群
$ mesos start-cluster.sh

打開瀏覽器,輸入http://node:5050即可確認(rèn)集群啟動(dòng)是否成功

啟動(dòng)后WebUI
啟動(dòng)后WebUI
  • 4.Spark on Mesos配置與啟動(dòng)
$ cd /usr/spark-1.4.0/conf
$ sudo vi spark-env.sh
#添加以下幾行內(nèi)容
#mesos
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export SPARK_EXECUTOR_URI=hdfs://spark-1.4.0-bin-hadoop2.6.tgz

$ sudo vi spark-defaults.conf
#添加以下幾行內(nèi)容
#mesos
spark.executor.uri hdfs://spark-1.4.0-bin-hadoop2.6.tgz
spark.master mesos://node:5050

輸入以下命令以測(cè)試spark on mesos是否啟動(dòng)成功:

$ cd /usr/spark-1.4.0/sbin
$ ./start-all.sh

$ spark-shell
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容