1. 程式人生 > >配置單臺Mesos-master與Mesos-slave

配置單臺Mesos-master與Mesos-slave

mark config ive roc 內核版本 感知 name pos 關閉

Apache Mesos是一個集群管理器,可跨分布式應用程序或框架提供有效的資源隔離和共享。它位於應用程序層和操作系統之間,可以更加輕松地在大規模集群環境中更有效地部署和管理應用程序。它可以在動態共享節點池上運行許多應用程序。Apache Mesos將CPU,內存,存儲和其他計算資源從機器(物理或虛擬)中抽象出來,使容錯和彈性分布式系統能夠輕松構建並有效運行。
Apache Mwsos的特點是需要獨立部署mesos-slave進程,依賴framework的功能,可以管理docker容器,但是成本相對較高,主要優勢是穩定性具有保障。

Apache Mesos工作原理

Apache Mesos采用了Master/Slave結構來簡化設計,將master做的盡可能輕量級,僅保存了各種計算機框架(framework)和mesos slave的狀態信息,這些狀態很容易在mesos出現故障時被重構。除此之外mesos還可以使用zookeeper解決master單點故障問題。

Mesos Master充當全局資源調度器角色,采用某種算法策略將某個slave上的空閑資源分配給某個framework,而各種framework則是通過自己的調度器項master註冊進行連接。mesos slave則是收集任務狀態和啟動各個framework的executor,工作原理如下圖
技術分享圖片

基本術語解釋

  • Mesos master:負責管理各個Framework和Slave,並將Slave上的資源非配給各個Framework
  • Mesos slave :負責管理本節點上的各個Mesos Task,為各個Executor分配資源
  • Framework :計算框架,如Hadoop、Spark等,可以通過MesosSchedulerDiver接入Mesos
  • Executor:執行器,在Mesos Slave上安裝,用於啟動計算框架中的Task。

Mesos功能

  • 使用ZooKeeper的容錯復制主服務器
  • 可擴展到數千個節點
  • 使用Linux容器隔離任務
  • 多資源調度(內存和CPU感知)
  • 用於開發新並行應用程序的Java,Python和C ++ API
  • 用於查看群集狀態的Web UI

環境準備

  • 操作系統:CentOS-7-x86_64
  • 內核版本:3.10.0-693.el7.x86_64
  • 關閉虛擬機防火墻
    setenforce 0
    systemctl stop firewalld.service
  • 虛擬機分配:
主機名 IP地址 安裝軟件
master 172.16.10.23 jdk-8u144-linux-x64.tar.gz、mesos-0.25.0.tar.gz
slave 172.16.10.43 jdk-8u144-linux-x64.tar.gz、mesos-0.25.0.tar.gz

安裝Apache Mesos

配置Java環境

解壓、歸檔軟件包

tar zxf jdk-8u144-linux-x64.tar.gz
mv jdk1.8.0_144 /usr/local/java
配置環境變量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
source /etc/profile    //刷新使環境變量生效

安裝相關環境

安裝開發工具

yum -y groupinstall "Development Tools"

添加apache-maven源

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

安裝依賴包

yum -y install apache-maven -- python-devel -- zlib-devel -- libcurl-devel -- openssl-devel -- cyrus-sasl-devel -- cyrus-sasl-md5 -- apr-devel -- apr-util-devel -- subversion-devel -- cyrus-sasl

配置WANdiscoSVN網絡源

vim /etc/yum.repo.d/wandisco-svn.repo

[WANdiscoSVN]
name=WANdisco SVN Repo 1.9
enabled=1
baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco

配置Mesos環境變量

vim /etc/profile
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so
source /etc/profile    //刷新使環境變量立即生效

構建mesos

tar zxvf mesos-0.25.0.tar.gz -C /root           //解壓軟件包
cd /root/mesos-0.25.0
mkdir build                                     //構建配置
cd build
../configure
make                                            //編譯
make check                                      //運行測試集
make install                                    //安裝

因為在安裝apache mesos時耗時一個多小時,在配置群集時都需要安裝此軟件,所以建議采用克隆的方式減少用時。

配置單臺Mesos-master與Mesos-slave

配置Mesos-master

Mesos-master負責維護slave集群的心跳,從slave提取資源信息。本地實驗沒有做dns解析,所以在這裏修改hosts文件。

hostnamectl set-hostname master            //設置完成之後需重啟,使修改生效
vim /etc/hosts
172.16.10.23 master
172.16.10.43 slave
ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master

簡配啟動Mesos-master

mesos-master --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --no-hostname_lookup --ip=0.0.0.0

參數釋義:

  • --work_dir:運行期數據存放路徑
  • --log_dir:Mesos日誌存放路徑
  • --[no-]hostname_lookup:是否從DNS獲取主機名,本次關閉次配置,直接顯示IP
  • --ip:Mesos進程綁定的IP

瀏覽器訪問管理頁面

http://192.168.175.145:5050/

技術分享圖片

配置Mesos-slave

Mesos-slave負責接收並執行來自動Mesos-master傳遞的任務以及監控任務狀態,收集任務使用系統的情況,配置之前仍修改主機名和hosts文件

hostnamectl set-hostname slave

vim /etc/hosts
172.16.10.23 master
172.16.10.43 slave
ln -sf /root/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave

在Mesos-slave安裝並啟動docker容器

yum install docker -y
systemctl start docker.service
systemctl enable docker.service

簡配啟動Mesos-slave

mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data --log_dir=/home/q/mesos/logs --master=172.16.10.23:5050 --no-hostname_lookup --ip=0.0.0.0

再次訪問網頁

再次對master的5050端口進行驗證,查看slave的狀態
技術分享圖片

配置單臺Mesos-master與Mesos-slave