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添加到環境變量中,友善識别
安裝相關環境
- 安裝開發工具
安裝完後,使用yum group list檢視已經安裝的工具組。[root@master ~]# yum groupinstall "Development tools" -y
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倉庫的安裝方式
另外可能在make過程中會有下圖報錯,那是由于網絡原因,導緻部分檔案無法下載下傳,導緻逾時退出,将build目錄下檔案都删除,重新編譯安裝即可。[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 #最後就是安裝
由于安裝Mesos時間比較長,是以這裡推薦安裝一台,其他的都使用克隆,wmworkstation14的克隆十分友善,要善于利用。CentOS7部署Apache MesosCentOS7部署Apache Mesos 配置單台Mesos-Apache與Mesos-slave
配置Mesos-master
Mesos-master負責維護slave群集的心跳,從slave中提取資源資訊,配置之前應該先做好相應的解析工作。
配置啟動Mesos-master[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的相關指令
配置完成後可以使用浏覽器通路本地的5050端口進行驗證,記得關閉防火牆和SELinux。[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
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位址及端口