Mesos是一个资源管理平台,架构和YARN相似,但稳定性和性能更好,遂决定尝试部署Mesos。
由于mesos网上资料很少,而且版本都比较老,现总结下最新版本mesos-1.3.0的安装过程
1)、三台机器,CentOS 7.1系统(在/etc/hosts中配置,其中192.168.63.128是master,其它两台是slave):
192.168.63.128 master
192.168.63.130 slave2
192.168.63.131 slave1
安装顺序:首先安装192.168.63.128 master, 待master安装并且全部配置完成后直接复制slave1,slave2即可。
(注意点1:需要在每台机器上增加如下配置:)
192.168.63.128 master
192.168.63.130 slave1
192.168.63.131 slave2
(注意点2:需要在每台机器上增加如下配置:)
根据每台机器的名,修改/etc/sysconfig/network, 192.168.63.128 设置为内容 master。这步必不可少
(注意点3:前两步做好后重启后生效)
2)、免密ssh登录(也可以不设置,后面会讲到原因),参考http://chenlb.iteye.com/blog/211809,只需要设置master 到 slave1 和slave2的免密访问,最好全部使用root来做,不涉及权限问题。
3)、安装jdk1.8(略)
4)、安装zookeeper,参见《zookeeper集群搭建》,网上资料很多,google或者baidu都可以。
本次搭建好后的zookeeper集群的环境为:
172.17.5.93:2181
172.17.5.93:2182
172.17.5.93:2183
SSH 登录 192.168.63.128
建安装位置
#mkdir -p /usr/local/mesos/mesos
#cd /usr/local/mesos
下载解压
#wget http://www.apache.org/dist/mesos/1.3.0/mesos-1.3.0.tar.gz
#tar -zxf mesos-1.3.0.tar.gz
安装依赖
#yum install -y tar wget git
#wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
#yum install -y epel-release
#bash -c ‘cat > /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
EOF'
#yum install -y apache-maven python-devel python-six python-virtualenv java-1.8.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
编译安装
#cd mesos
#mkdir build
#../configure
#make -j4 && make -j4 install
安装漫长,耐心等待,大概1小时左右时间
检查/etc/profile文件,看末尾是否添加了如下的配置,如果没有则添加如下配置
export MESOS_HOME=/usr/local/mesos/mesos/build
export PATH= PATH:/usr/local/sbin: {MESOS_HOME}/bin
修改后:
source /etc/profile
使生效
测试
启动master
#./bin/mesos-master.sh –ip=127.0.0.1 –work_dir=/var/lib/mesos
启动agent
#./bin/mesos-agent.sh –master=127.0.0.1:5050 –work_dir=/var/lib/mesos
运行java例子
#./src/examples/java/test-framework 127.0.0.1:5050
至此,mesos 安装成功了
可参考官网http://mesos.apache.org/gettingstarted/,写的很清楚了
SSH 登录 192.168.63.128
将几个配置模板文件分别生成新的文件
#cd /usr/local/etc/mesos
#cat mesos-agent-env.sh.template > mesos-agent-env.sh
#cat mesos-deploy-env.sh.template > mesos-deploy-env.sh
#cat mesos-master-env.sh.template > mesos-master-env.sh
#cat mesos-slave-env.sh.template > mesos-slave-env.sh
修改mesos-master-env.sh
#vim mesos-master-env.sh
export MESOS_log_dir=/data/mesos/log
export MESOS_work_dir=/data/mesos/data
export MESOS_ZK=zk://172.17.5.93:2181,172.17.5.93:2182,172.17.5.93:2183/mesos
修改mesos-agent-env.sh和mesos-slave-env.sh一样
#vim mesos-agent-env.sh
export MESOS_master=master:5050
export MESOS_log_dir=/data/mesos/log
export MESOS_work_dir=/data/mesos/run
export MESOS_isolation=cgroups
修改masters
#echo master > masters
修改slaves
#vim slaves
slave1
slave2
修改mesos-daemon.sh
vim /usr/local/sbin/mesos-daemon.sh
将ulimit -n 8192修改为ulimit -n 1024
(这条指令是在向服务器索要资源,但是 通过ulimit -a查看可以看出-n为1024,系统要求这个数不能更大,因此把8192更改为1024即可)。
安装slave1、slave2
分别复制到slave1,slave2中,根据 第一步【1、准备工作】做机器和网络的配置,完成后重启。
启动集群
第一种方法:适用于没有配置免密登录的用户:
登录master机器,执行:
./bin/mesos-master.sh --ip=master --work_dir=/var/lib/mesos
登录slave1机器。执行:
./bin/mesos-agent.sh --master=master:5050 --work_dir=/var/lib/mesos
登录slave2,执行:
./bin/mesos-agent.sh --master=master:5050 --work_dir=/var/lib/mesos
如果不能执行, 将master、slave1、slave2换成相应的IP即可
第二种方法,使用域配置了免密登录的用户:
登录master机器,然后执行
#cd /usr/local/sbin
#./mesos-start-cluster.sh
登录http://master:5050,这里的master换成master机器对应的IP,否则配置/etc/hosts,添加master对应的IP即可。正常的话应该出现如下界面:
SSH登录master机器, 执行如下命令:
#cd /usr/local/mesos/mesos/build
#./src/examples/java/test-framework master:5050
表明刚刚执行的任务在slave1、slave2的执行器上都有执行。
至此mesos环境搭建完成,下文将详细阐述原理。