天天看點

CentOS7部署Apache MesosCentOS7部署Apache Mesos

CentOS7部署Apache Mesos

Apache Mesos是由加州大學伯克利分校的AMPLab首先開發的一款開源群集管理軟體,支援Hadoop、ElasticSearch、Spark、Storm 和Kafka等應用架構。Mesos使用了與Linux核心相似的規則來構造,僅僅是不同抽象層級的差别。Mesos從裝置(實體機或虛拟機)抽取 CPU,記憶體,存儲和其他計算資源,讓容錯和彈性分布式系統更容易使用。Mesos核心運作在每個機器上,在整個資料中心和雲環境内向應用程式(Hadoop、Spark、Kafka、Elastic Serarch等等)提供資源管理和資源負載的API接口。

Apache Mesos工作原理

Apache Mesos采用了Master/Slave結構來簡化設計,将Master做得盡量輕量級,僅儲存了各種計算架構(Framework)和Mesos Slave的狀态資訊,這些狀态很容易在Mesos出現故障的時候被重構,除此之外Mesos還可以使用Zookeeper解決Master單點故障。

Mesos Master充當全局資源排程器角色,采用某種政策算法将某個Slave上的空閑資源配置設定給某個Framework,而各種Framework則是通過自己的排程器向Master注冊進行接入。Mesos Slave則是通過收集任務狀态和啟動各個Framework的Executor。工作原理圖如下。

Apache Mesos配置要求

本實驗都是使用的CentOS7系統,因為Mesos配置最低要求核心為3.10以上。

[root@master ~]# uname -r
3.10.0-693.el7.x86_64           

試驗環境

主機名 IP位址
master 192.168.58.152
slave 192.168.58.162

安裝步驟

目前的Mesos支援三種語言編寫的排程器,分别是C++、Java、Python,可以向不同的排程器提供統一的接入方式

配置java環境

首先從官網上下載下傳JDK軟體包,位址為https://www.oracle.com/technetwork/java/,可以選擇合适的版本下載下傳,我這裡使用的jdk-8u91-linux-x64.tar.gz。

[root@master ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
#将jdk包解壓到指定目錄中
[root@master ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

[root@master ~]# source /etc/profile
#将java添加到環境變量中,友善識别           

安裝相關環境

  • 安裝開發工具
    [root@master ~]# yum groupinstall "Development tools" -y           
    安裝完後,使用yum group list檢視已經安裝的工具組。
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
  • 添加apache-maven源

    為Mesos提供項目管理和建構自動化工具的支援

    [root@master ~]# wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo           
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
  • 安裝相關依賴包
    [root@master ~]# yum install -y apache-maven python-devel zlib-devel libcurl-devel \
    > openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel apr-util-devel subversion-devel           
  • 配置WANdiscoSVN網絡源
[root@master ~]# vim /etc/yum.repos.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環境變量
[root@master ~]# vim /etc/profile

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
export MESOS_NATIVE_LIBRARY=/usr/local/lib/libmesos.so

[root@master ~]# source /etc/profile           
  • 建構Mesos

    我們這裡采用的是源碼編譯的方式安裝,當然也可以使用yum倉庫的安裝方式

    [root@master ~]# wget http://archive.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz
    #首先先下載下傳mesos軟體包
    [root@master ~]# tar xf mesos-0.25.0
    #将mesos軟體包解壓到目前目錄
    [root@master ~]# cd mesos-0.25.0/
    #進入到解壓完的目錄中
    [root@master mesos-0.25.0]# mkdir build/
    #建立一個build目錄,具體為什麼這麼操作,參考http://mesos.mydoc.io/官方文檔
    [root@master mesos-0.25.0]# cd build/
    [root@master build]# ../configure 
    #進入到build目錄中,注意是../configure,因為configure在上一層目錄中
    [root@master build]# make
    #注意這個環節時間特别長,要有耐心
    [root@master build]# make check
    #make編譯完後,進行測試,最後可能會有兩個報錯,不過不影響
    [root@master build]# make install
    #最後就是安裝           
    另外可能在make過程中會有下圖報錯,那是由于網絡原因,導緻部分檔案無法下載下傳,導緻逾時退出,将build目錄下檔案都删除,重新編譯安裝即可。
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
    由于安裝Mesos時間比較長,是以這裡推薦安裝一台,其他的都使用克隆,wmworkstation14的克隆十分友善,要善于利用。

    配置單台Mesos-Apache與Mesos-slave

    配置Mesos-master

    Mesos-master負責維護slave群集的心跳,從slave中提取資源資訊,配置之前應該先做好相應的解析工作。
    [root@master ~]# hostnamectl set-hostname master
    #将本機的主機名改為master
    [root@master ~]# vim /etc/hosts
    192.168.58.152 master
    192.168.58.162 slave
    #在hosts檔案中寫入ip和主機名的對應關系
    [root@master ~]# ping slave
    PING slave (192.168.58.162) 56(84) bytes of data.
    64 bytes from slave (192.168.58.162): icmp_seq=1 ttl=64 time=0.262 ms
    ^C
    --- slave ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.262/0.262/0.262/0.000 ms
    #可以使用主機名,直接ping通
    [root@master ~]# ln -sf /root/mesos-0.25.0/build/bin/mesos-master.sh /usr/sbin/mesos-master
    #這是建立軟連結,友善使用mesos的相關指令           
    配置啟動Mesos-master
    [root@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:運作期間資料的存放路徑,包含sanbox、slave meta資訊
    #--log——dir:日志存放路徑
    #--no-hostname_lookup:是否從DNS擷取主機名,這裡是關閉這個功能,直接從本地hosts檔案擷取
    #--ip:Mesos程序綁定的IP           
    配置完成後可以使用浏覽器通路本地的5050端口進行驗證,記得關閉防火牆和SELinux。
    CentOS7部署Apache MesosCentOS7部署Apache Mesos

    vm14克隆介紹

    vm14的克隆功能很強大,首先需要先關閉被克隆的虛拟機。
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
    CentOS7部署Apache MesosCentOS7部署Apache Mesos
    CentOS7部署Apache MesosCentOS7部署Apache Mesos

    配置Mesos-slave

    Mesos-slave負責接受并執行來自Mesos-master傳遞的任務以及監控任務狀态,手機任務使用系統的情況,配置之前也要先做好相應的解析工作。
    [root@slave ~]# hostnamectl set-hostname slave
    #将Mesos-slave伺服器主機名改為slave
    [root@slave ~]# vim /etc/hosts
    192.168.58.152 master
    192.168.58.162 slave
    #和Mesos-master一樣           
    [root@slave ~]# yum install docker -y
    #先安裝docker服務
    [root@slave ~]# systemctl start docker.service
    [root@slave ~]# systemctl enable docker.service
    #啟動docker服務已經設定為開機啟動           
    [root@slave ~]# mesos-slave --containerizers="mesos,docker" --work_dir=/home/q/mesos/data \
    > --log_dir=/home/q/mesos/logs --master=192.168.58.152:5050 --no-hostname_lookup --ip=0.0.0.0
    #--containerizers 支援docker虛拟化的slave
    #--master:指定mesos-master位址及端口           

繼續閱讀