1. 程式人生 > >配置多mesos-master環境實戰

配置多mesos-master環境實戰

可能 公有 work clas configure linu arc 套件 centos

  • Apache Mesos概述
  • Apache Mesos是一款基於多資源調度的開源集群管理套件,使容錯和分布式系統更加容易使用實現,采用Master/Slave結構簡化設計,將Master盡可能輕量級,進保存了Mesos Slave的狀態信息

    常見集群管理工具

    工具 特點 優勢
    Apache Mesos 需要獨立部署mesos-slave進程;依賴framework的功能;可管理docker容器;成本較高 應為經過許多互聯網公司的大規模實踐,穩定性具有保障
    Docker Swarm Docker 官方群集工具,需要Docker deamon 啟用tcp端口學習;Swarm的命令兼容Docker;學習成本非常低 公有雲環境Machine 和 Swarm 搭配使用效率更高
    Google Kubernetes 完全DOcker化的管理工具,功能叠代非常快;群集管理能力比mesos稍差 功能模塊集成度高

    Apache Mesos工作原理

    技術分享圖片

    Apache Mesos配置實戰

    實驗環境:

    實驗環境 IP地址 內核版本3.10以上
    master 192.168.10.157 3.10.0-693.el7.x86_64
    master1 192.168.10.132 3.10.0-693.el7.x86_64
    master2 192.168.10.133 3.10.0-693.el7.x86_64
    slave1 192.168.10.135 3.10.0-693.el7.x86_64
    slave2 192.168.10.134 3.10.0-693.el7.x86_64

    安裝Apache Mesos

    1:配置Java環境

    tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
    cd /usr/local
    mv jdk1.8.0_91/ java
    
    #在/etc/profile配置環境變量
    vim /etc/profile
    
    export JAVA_HOME=/usr/local/java
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar          //末行添加
    
    source /etc/profile     //加載立即生效

    2:安裝相關環境

    (1)安裝開發工具

    yum groupinstall -y "Development Tools" 
    //安裝開發工具的時候可能會出現沒有相關的軟件包這時候要根據報錯提示先安裝相關依賴包

    (2)添加Apache-maven源

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

    (3)安裝相關依賴包

    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

    (4)配置WANdiscoSVN網絡源

    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
    

    3:配置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

    4:構建Mesos

    編譯安裝Mesos

    wget http://www.apache.org/dist/mesos/0.25.0/mesos-0.25.0.tar.gz      //下載軟件包
    
    tar zxvf mesos-0.25.0.tar.gz -C /opt/
    mv mesos-0.25.0/ /root/
    cd /root/mesos-0.25.0
    mkdir build
    cd build
    
    ../configure
    
    make              //等待時間長(在線狀態)
    make check
    make install    
    
    由於安裝mesos用時較長,而實驗每臺主機都需安裝mesos,所以建議克隆虛擬機

    配置多臺mesos-master

    hostnamectl set-hostname master       //修改主機名
    
    #在hosts文件裏面寫入三臺master 兩臺slave的主機IP地址
    
    vim /etc/hosts
    
    192.168.10.157 master
    192.168.10.132 master1
    192.168.10.133 master2
    192.168.10.135 slave1
    192.168.10.134 slave2
    #可以直接用scp發送至另外四臺服務器
    scp /etc/profile 192.168.10.132:/etc/profile        //其他主機類似
    
    #建立軟連接
    ln -sf /root/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave

    mesos-slave配置

    此前應已經安裝完mesos,並修改了主機名和/etc/hosts文件
    
    ln -sf /root/mesos-0.25.0/build/bin/mesos-slave.sh /usr/sbin/mesos-slave
    //建立軟鏈接
    
    //安裝docker並開啟
    yum install docker -y
    systemctl start docker.servicev #運行
    systemctl enable docker.service #開機自啟動

    配置多mesos-master環境

    在三個Mesos-master節點上安裝Zookeeper

    tar zxvf zookeeper-3.4.6.tar.gz -C /home/q/
    cd /home/q/zookeeper-3.4.6/conf/
    mv zoo_sample.cfg zoo.cfg
    
    vim zoo.cfg       
    
    dataDir=/home/q/zookeeper-3.4.6/data   //重新定義數據存放位置
    dataLogDir=/home/q/zookeeper-3.4.6/datalog
    server.1=192.168.10.157:2888:3888
    server.2=192.168.10.132:2888:3888
    server.3=192.168.10.133:2888:3888

    技術分享圖片

    #按照zoo.cfg配置文件的swerver1、2、3修改每臺master的myid
    //在master主機上操作(/opt/home/zookeeper-3.4.6/中)
    mkdir data datalog 
    echo 1 > data/myid
    cat data/myid

    技術分享圖片

    //在master1主機上操作(/opt/home/zookeeper-3.4.6/中)
    mkdir data datalog 
    echo 2 > data/myid
    cat data/myid 

    技術分享圖片

    //在master2主機上操作(/opt/home/zookeeper-3.4.6/中)
    mkdir data datalog 
    echo 3 > data/myid
    cat data/myid

    技術分享圖片

    啟動zookeeper

    //在master主機上啟動服務
    ./bin/zkServer.sh start conf/zoo.cfg 
    //查看zookeeper狀態
    ./bin/zkServer.sh status

    技術分享圖片

    //在master1主機上啟動服務
    ./bin/zkServer.sh start conf/zoo.cfg
    //查看zookeeper狀態
    ./bin/zkServer.sh status

    技術分享圖片

    //在master2主機上啟動服務
    ./bin/zkServer.sh start conf/zoo.cfg
    //查看zookeeper狀態
    ./bin/zkServer.sh status

    技術分享圖片
    啟動master服務
    先啟動leader服務器上的zookeeper,這是采用雙選舉機制先zookeeper選舉出個leader然後mesos第一臺啟動默認就是leader

    //master1
    mesos-master --work_dir=/opt/home/mesos/data --log_dir=/opt/home/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.168.10.132:2181/mesos --quorum=2
    
    //master
    mesos-master --work_dir=/opt/home/mesos/data --log_dir=/opt/home/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.168.10.157:2181/mesos --quorum=2 
    
    //master2
    mesos-master --work_dir=/opt/home/mesos/data --log_dir=/opt/home/mesos/logs --no-hostname_lookup --ip=0.0.0.0 --zk=zk://192.168.10.133:2181/mesos --quorum=2

    啟動mesos-slave

    slave1
    mesos-slave --containerizers="mesos,docker" --work_dir=/opt/home/mesos/data --log_dir=/opt/home/mesos/logs --master=zk://192.168.10.157:2181,192.168.10.132:2181,192.168.10.133:2181/mesos --no-hostname_lookup --ip=0.0.0.0
    
    slave2
    
    mesos-slave --containerizers="mesos,docker" --work_dir=/opt/home/mesos/data --log_dir=/opt/home/mesos/logs --master=zk://192.168.10.157:2181,192.168.10.132:2181,192.168.10.133:2181/mesos --no-hostname_lookup --ip=0.0.0.0

    此時用網頁訪問http://192.168.10.132:5050
    技術分享圖片
    若訪問的IP不是leader的IP則會向leaderIP跳轉
    技術分享圖片
    技術分享圖片
    兩臺從服務器的信息
    技術分享圖片

    配置多mesos-master環境實戰