ubuntu 14 mesos 集群的配置

来源:互联网 发布:我的淘宝p图 编辑:程序博客网 时间:2024/05/16 01:18

规划

    Vmware11.1          os: ubuntu-14.04.3

    mesos0.26.0-0.2.145           zookeeper3.4.5            marathon0.13.0-1.0.440 (需要java8)


对象机器:

192.168.13.130 master1
192.168.13.134 master2
192.168.13.135 master3

192.168.13.136 slave1
192.168.13.137 slave2
192.168.13.138 slave3


1. 修改hostname和hosts配置文件

#vi /etc/hostname 

六太机器分别修改为

master1
master2
master3
slave1
slave2

slave3

#vi /etc/hosts

去掉127.0.0.1 ubuntu1,只保留127.0.0.1 localhost

然后在六太机器里都把下面的ip加上去。

192.168.13.130 master1
192.168.13.134 master2
192.168.13.135 master3

192.168.13.136 slave1
192.168.13.137 slave2
192.168.13.138 slave3

修改完毕后重启机器,然后互相ping master1~slave3,确保6太机器之间互相连通。


2.由于使用的是marathon0.13.0-1.0.440,要求openjdk-8-jre-headless,所以需要安装java8

  •  截至目前ubuntu的镜像库里没有java8(最高是java7),直接使用apt-get install  jdk1.8是无法安装的。

             所以需要添加oracle的镜像库才能安装。(手动下载安装容易出错,会出现openjdk-8-jre-headless没有被安装的情况,建议自动安装)

#sudo add-apt-repository ppa:webupd8team/java -y
#sudo apt-get update

#sudo apt-get install oracle-java8-installer   (download jdk-8u66-linux-x64.tar.gz需要些时间)

#sudo apt-get install oracle-java8-set-default

检查安装结果
#java -version
root@master3:~# java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

3.安装mesos,zookeeper,marathon (由于最新的mesos版本里已经包含了zookeeper,只需install mesos即可)

a.master1

$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos marathon
$ echo manual | sudo tee /etc/init/mesos-slave.override
$ echo 192.168.13.130 | sudo tee /etc/mesos-master/hostname
$ echo 192.168.13.130 | sudo tee /etc/mesos-master/ip
$ echo Cluster01 | sudo tee /etc/mesos-master/cluster
$ echo 2 | sudo tee /etc/mesos-master/quorum
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ echo 1 | sudo tee /etc/zookeeper/conf/myid
$ sudo reboot

修改/etc/zookeeper/conf/zoo.cfg

server.1=master1:2888:3888
server.2=master2:2888:3888
server.3=1master3:2888:3888

设置marathon配置文件

$mkdir  -p  /etc/marathon/conf

$ echo 192.168.13.130 | sudo tee /etc/marathon/conf/hostname

$ echo zk://master1:2181,master2:2181,master3:2181/marathon | sudo tee /etc/marathon/conf/zk

b.master2

$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos
$ echo manual | sudo tee /etc/init/mesos-slave.override
$ echo 192.168.13.134 | sudo tee /etc/mesos-master/hostname
$ echo 192.168.13.134 | sudo tee /etc/mesos-master/ip
$ echo Cluster01 | sudo tee /etc/mesos-master/cluster
$ echo 2 | sudo tee /etc/mesos-master/quorum
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ echo 2 | sudo tee /etc/zookeeper/conf/myid
$ sudo reboot

修改/etc/zookeeper/conf/zoo.cfg

server.1=master1:2888:3888
server.2=master2:2888:3888
server.3=1master3:2888:3888

设置marathon配置文件

$mkdir  -p  /etc/marathon/conf

$ echo 192.168.13.134 | sudo tee /etc/marathon/conf/hostname

$ echo zk://master1:2181,master2:2181,master3:2181/marathon | sudo tee /etc/marathon/conf/zk


c.master3

$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos
$ echo manual | sudo tee /etc/init/mesos-slave.override
$ echo 192.168.13.135 | sudo tee /etc/mesos-master/hostname
$ echo 192.168.13.135 | sudo tee /etc/mesos-master/ip
$ echo Cluster01 | sudo tee /etc/mesos-master/cluster
$ echo 2 | sudo tee /etc/mesos-master/quorum
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ echo 2 | sudo tee /etc/zookeeper/conf/myid
$ sudo reboot

修改/etc/zookeeper/conf/zoo.cfg

server.1=master1:2888:3888
server.2=master2:2888:3888
server.3=1master3:2888:3888

设置marathon配置文件

$mkdir  -p  /etc/marathon/conf

$ echo 192.168.13.135 | sudo tee /etc/marathon/conf/hostname

$ echo zk://master1:2181,master2:2181,master3:2181/marathon | sudo tee /etc/marathon/conf/zk



d.slave1


$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos
$ echo manual | sudo tee /etc/init/mesos-master.override
$ echo manual | sudo tee /etc/init/zookeeper.override
$ echo 192.168.13.136 | sudo tee /etc/mesos-slave/hostname
$ echo 192.168.13.136  | sudo tee /etc/mesos-slave/ip
$ echo "cgroups/cpu,cgroups/mem" | sudo tee /etc/mesos-slave/isolation
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ sudo reboot


e.slave2


$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos
$ echo manual | sudo tee /etc/init/mesos-master.override
$ echo manual | sudo tee /etc/init/zookeeper.override
$ echo 192.168.13.137 | sudo tee /etc/mesos-slave/hostname
$ echo 192.168.13.137  | sudo tee /etc/mesos-slave/ip
$ echo "cgroups/cpu,cgroups/mem" | sudo tee /etc/mesos-slave/isolation
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ sudo reboot


e.slave2


$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos
$ echo manual | sudo tee /etc/init/mesos-master.override
$ echo manual | sudo tee /etc/init/zookeeper.override
$ echo 192.168.13.137 | sudo tee /etc/mesos-slave/hostname
$ echo 192.168.13.137  | sudo tee /etc/mesos-slave/ip
$ echo "cgroups/cpu,cgroups/mem" | sudo tee /etc/mesos-slave/isolation
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ sudo reboot



f.slave3


$ DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
$ CODENAME=$(lsb_release -cs)
$ echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
$ sudo apt-get -y update
$ sudo apt-get -y install mesos
$ echo manual | sudo tee /etc/init/mesos-master.override
$ echo manual | sudo tee /etc/init/zookeeper.override
$ echo 192.168.13.138 | sudo tee /etc/mesos-slave/hostname
$ echo 192.168.13.138  | sudo tee /etc/mesos-slave/ip
$ echo "cgroups/cpu,cgroups/mem" | sudo tee /etc/mesos-slave/isolation
$ echo zk://master1:2181,master2:2181,master3:2181/mesos | sudo tee /etc/mesos/zk
$ sudo reboot



3.web url确认安装结果

http://master1:5050 查看master,zookeeper会自动选举一个master出来,该url也会自动跳转到被选举的master上

http://master1:8080 查看marahon,并可以提交一个任务。



安装过程中遇到的2个问题

1./etc/mesos-master/quorum的设置问题,导致zookeeper虽然正常启动,但是处于waiting状态,造成http://master1:8080无法打开的问题。

查看marathon的log,会有如下message


INFOOpening socket connection to server localhost/master1:2181.Willnotattempt to authenticateusingSASL (unknownerror) (org.apache.zookeeper.ClientCnxn:975)


解决方法quorum的值> master个数/2,本例的话,3个master,所以应该设置成2,同时必须要启动2个以上的master,否则zookeeper不能正常选举,同样marahon无法正常运行。


2./etc/mesos-slave/hostname的漏设。造成http://master1:5050里,查看slave2的log的时候出现下面问题


Theslave's hostname, 'slave2', is not accessible from your network

Theslave's port, '5051', is not accessible from your network

 
解决方法:
etc/mesos-slave下面添加
hostname  ip isolation







0 0
原创粉丝点击