转载来自:http://3258715.blog.51cto.com/3248715/1757850

1 Apache Mesos简介

Apache Mesos据说是云计算的未来,利用Mesos可轻易实现一个PaaS云平台。

请参考 http://mesos.apache.org/http://mesosphere.com/查看详细

2 Master节点安装

规划

  • 192.168.1.110 master1

  • 192.168.1.111 master2

  • 192.168.1.112 master3

关闭防火墙

  • master1,master2,master3

systemctl stop firewalld && systemctl disable firewalld

添加 mesos的yum源

  • master1,master2,master3

sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

安装mesos及相关软件(zk可以自己安装,不用yum

  • master1,master2,master3

yum -y install mesos marathon yum -y install mesosphere-zookeeper(这个可以不用安装)

配置zookeeper(这是yum安装zk后的配置,若自己手动安装,无须看)

  • master1

touch /var/lib/zookeeper/myid echo 1 > /var/lib/zookeeper/myid
  • master2

touch /var/lib/zookeeper/myid echo 2 > /var/lib/zookeeper/myid
  • master3

touch /var/lib/zookeeper/myid echo 3 > /var/lib/zookeeper/myid
  • master1,master2,master3

vi /etc/zookeeper/conf/zoo.cfg

添加

server.1=192.168.1.110:2888:3888 server.2=192.168.1.111:2888:3888 server.3=192.168.1.112:2888:3888
  • 下面的必做:

  • master1,master2,master3 vi /etc/mesos/zk 

  • 增加内容:zk://192.168.1.110:2181,192.168.1.111:2181,192.168.1.112:2181/mesos(删除原有内容)

  • master1,master2,master3 vi /etc/mesos-master/quorum

增加内容:2(把原有的内容1删除,改为2)

  • 设置 --quorum=2 的意思是:至少要有 2 台 master 节点在线,否则集群无法起来,所以至少要两台 master 一起启动。

配置mesos和marathon

  • master1(下面三步其实一样,就是 vim /etc/mesos-master/hostname 输入ip,然后mkdir -p /etc/marathon/conf/,再vim /etc/marathon/conf/hostname 输入ip)

echo 192.168.1.110 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.110 | sudo tee /etc/marathon/conf/hostname
  • master2

echo 192.168.1.111 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.111 | sudo tee /etc/marathon/conf/hostname
  • master3

echo 192.168.1.112 | sudo tee /etc/mesos-master/hostname mkdir -p /etc/marathon/conf/ && touch hostname echo 192.168.1.112 | sudo tee /etc/marathon/conf/hostname

启动zookeeper mesos-master marathon

  • master1,master2,master3

systemctl start  zookeeper && systemctl start mesos-master && systemctl start marathon && systemctl disable mesos-slave

3 Slave节点安装

规划

  • 192.168.1.113 client1(我由于机器不够,slave安装在了master上了,启动服务时注意就行,别把master停了)

关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

添加 mesos的yum源

sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

安装mesos

yum -y install mesos

配置master信息

vi /etc/mesos/zk

增加

zk://192.168.1.110:2181,192.168.1.111:2181,192.168.1.112:2181/mesos
cd /etc/mesos-slave/ touch hostname echo 192.168.1.113 | sudo tee /etc/mesos-slave/hostname

启动mesos-slave

systemctl start  mesos-slave  && systemctl enable  mesos-slave  systemctl disable mesos-master

4 测试

  • 访问 http://192.168.1.110:5050 mesos地址 mesos安装mesos安装

  • 访问 http://192.168.1.110:8080 marathon地址,可利用其发布docker镜像并可调整应用数量 mesos安装


注意:如果mesos-slave出现这种错误:
# systemctl status mesos-slave.service
● mesos-slave.service - Mesos Slave
   Loaded: loaded (/usr/lib/systemd/system/mesos-slave.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since 日 2016-02-21 23:55:50 CST; 9s ago
  Process: 6009 ExecStart=/usr/bin/mesos-init-wrapper slave (code=exited, status=1/FAILURE)
 Main PID: 6009 (code=exited, status=1/FAILURE)
   Memory: 24.0K
   CGroup: /system.slice/mesos-slave.service

221 23:55:50 mesos mesos-slave[6016]:   ranges {
221 23:55:50 mesos mesos-slave[6016]:     range {
221 23:55:50 mesos mesos-slave[6016]:       begin: 31000
221 23:55:50 mesos mesos-slave[6016]:       end: 32000
221 23:55:50 mesos mesos-slave[6016]:     }
221 23:55:50 mesos mesos-slave[6016]:   }
221 23:55:50 mesos mesos-slave[6016]:   role: "*"
221 23:55:50 mesos systemd[1]: mesos-slave.service: main process exited, code=exited, status=1/FAILURE
221 23:55:50 mesos systemd[1]: Unit mesos-slave.service entered failed state.
221 23:55:50 mesos systemd[1]: mesos-slave.service failed.
如果出现这种错误,那可能是因为,slave的默认端口5051关闭了,telnet试一下,如果是,就开启此端口。
我是防火墙关了都telnet 不通5051,选择了reboot,解决了。
 
 
注:
master的配置

为了使master正常工作,有三个必须配置的变量:ZooKeeper URL(zk),quorum,和work_dir

  • ZooKeeper URL以如下方式指定:

    zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos

  • quorum(法定人数):需要大于master数目的1/2。
  • work_dir(工作目录):此目录用于Mesos master的工作目录,没有默认设置,/var/lib/mesos是一个较好的选择。

如果把上面的配置都作为环境变量,可以使用类似于如下的命令:

$ export MESOS_zk=zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
$ export MESOS_quorum=2
$ export MESOS_work_dir=/var/lib/mesos
$ export MESOS_log_dir=/var/log/mesos
slave的配置

为了使slave正常工作,有两个必须配置的变量:master和work_dir

  • master:它的值配置为ZooKeeper URL(zk),用于Mesos slave探测哪个是leading master并且连接到那。配置的方式同上。
  • work_dir(工作目录):此目录作为Mesos frameworks的工作目录和sandboxes(沙箱),没有默认值,使用/var/lib/mesos是一个不错的选择。

如果把上面的配置都作为环境变量,可以使用类似于如下的命令:

$ export MESOS_master=zk://mesos-master-1.example.com:2181,mesos-master-2.example.com:2181,mesos-master-3.example.com:2181/mesos
$ export MESOS_work_dir=/var/lib/mesos
$ export MESOS_log_dir=/var/log/mesos

以上的配置基本上是可以使Mesos集群工作的最小配置。

关于Apache Mesos cluster的完整配置选项,请参考Mesos的官方文档http://mesos.apache.org/documentation/latest/configuration/

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐