root@mesos-master-1:/mesos-docker-marathon# ls apache-maven-3.3.9-bin.tar.gz jdk1.8 jdk-8u60-linux-x64.gz marathon marathon-1.3.5.tgz maven mesos mesos-1.0.1 mesos-1.0.1.tar.gz zkui zookeeper
安裝的包,隨意下載最新版本的,記得JDK1.8 和 mavenjava
export JAVA_HOME=/mesos-docker-marathon/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=/mesos-docker-marathon/maven/bin:$PATH root@mesos-master-1:/mesos-docker-marathon/marathon# cat /etc/hosts 127.0.0.1 localhost 172.16.126.131 master1 mesos-master-1 172.16.126.132 master2 mesos-master-2 172.16.126.133 master3 mesos-master-3
環境變量設置和hosts的配置python
先安裝好zk 和 zkui 吧 具體如何安裝我這裏就不寫了。linux
先把maven裝好,編譯mesos的時候會用maven下載一些東西。但願你的網絡是OK的,否則那是至關長的過程。web
先安裝mesos的依賴包,這個按照官網的來安裝就好了。docker
配置好清華的源,否則慢的一比shell
root@mesos-master-1:/mesos-docker-marathon# more /etc/apt/sources.list deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
maven倉庫的鏡像源修改下,在maven的conf目錄下的settings.xmlapache
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> <mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> </mirrors>
apt-get install -y autoconf libtool build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev libevent-dev python-pip libssl-dev
我記得還須要安裝個什麼東西,忘了,具體狀況看下報錯就歐了。ubuntu
編譯mesosbash
./configure --prefix=/mesos-docker-marathon/mesos make && make install
這裏不要 make check 了 太慢了網絡
編譯完成後
root@mesos-master-1:/mesos-docker-marathon/mesos# ls bin etc include lib libexec sbin share root@mesos-master-1:/mesos-docker-marathon/mesos# ls etc/mesos/ masters mesos-agent-env.sh mesos-deploy-env.sh mesos-master-env.sh mesos-slave-env.sh root@mesos-master-1:/mesos-docker-marathon/mesos# more etc/mesos/masters 172.16.126.131 172.16.126.132 172.16.126.133 root@mesos-master-1:/mesos-docker-marathon/mesos# more etc/mesos/mesos-master-env.sh # This file contains environment variables that are passed to mesos-master. # To get a description of all options run mesos-master --help; any option # supported as a command-line option is also supported as an environment # variable. # Some options you're likely to want to set: #export MESOS_log_dir=/var/log/mesos export MESOS_logging_level=INFO export MESOS_CLUSTER=jastme export MESOS_hostname=172.16.126.131 export MESOS_offer_timeout=60secs export MESOS_log_dir=/var/log/mesos export MESOS_work_dir=/var/run/mesos/master export MESOS_ZK=zk://172.16.126.131:2181,172.16.126.132:2181,172.16.126.133:2181/mesos export MESOS_quorum=1
以上是master的配置
啓動集羣(記住先作好SSH的互信)
root@mesos-master-1:/mesos-docker-marathon/mesos# sh sbin/mesos-start-masters.sh Starting mesos-master on 172.16.126.131 ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 172.16.126.131 /mesos-docker-marathon/mesos/sbin/mesos-daemon.sh mesos-master </dev/null >/dev/null Starting mesos-master on 172.16.126.132 ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 172.16.126.132 /mesos-docker-marathon/mesos/sbin/mesos-daemon.sh mesos-master </dev/null >/dev/null Starting mesos-master on 172.16.126.133 ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 172.16.126.133 /mesos-docker-marathon/mesos/sbin/mesos-daemon.sh mesos-master </dev/null >/dev/null
5050端口已經起來了
root@mesos-master-1:/mesos-docker-marathon/zookeeper# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 172.16.126.131:3888 0.0.0.0:* LISTEN 1959/java tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1061/sshd tcp 0 0 0.0.0.0:5050 0.0.0.0:* LISTEN 1842/mesos-master tcp 0 0 0.0.0.0:41728 0.0.0.0:* LISTEN 1959/java tcp 0 0 172.16.126.131:2181 0.0.0.0:* LISTEN 1959/java tcp6 0 0 :::22 :::* LISTEN 1061/sshd
再來看看zookeeper裏面的信息
,集羣啓動成功了。看看頁面
marathon 的安裝就更爲簡單一點了。
./configure --prefix=/mesos-docker-marathon/marathon make && make install
root@mesos-master-1:/mesos-docker-marathon/marathon# more start.sh #!/bin/bash MESOS_NATIVE_JAVA_LIBRARY=/mesos-docker-marathon/mesos/lib/libmesos.so nohup /mesos-docker-marathon/marathon/bin/start --master zk://172.16.126.131:2181,172.16.126.132:2181,172.16.126.133:2181/mesos --zk zk://172.16.126.131:2181,172.16.126.13 2:2181,172.16.126.133:2181/marathon &
直接腳本啓動吧。而後在zkui裏看看狀態
看到leader是master1
嗯 有3臺機器參加了選舉
看看marathon如何進行工做的吧
新版的marathon比老版本的強了很多,再進行測試以前,咱們須要搭建一個能夠測試的slave。
slave的搭建和master是同樣的,只是配置文件稍微有點變更
root@web2:/mesos-slave/mesos/sbin# cat /etc/hosts 127.0.0.1 localhost 172.16.126.129 web2 172.16.126.131 master1 mesos-master-1 172.16.126.132 master2 mesos-master-2 172.16.126.133 master3 mesos-master-3 root@web2:/mesos-slave/mesos/sbin# cat ../etc/mesos/mesos-agent-env.sh # This file contains environment variables that are passed to mesos-agent. # To get a description of all options run mesos-agent --help; any option # supported as a command-line option is also supported as an environment # variable. # You must at least set MESOS_master. # The mesos master URL to contact. Should be host:port for # non-ZooKeeper based masters, otherwise a zk:// or file:// URL. #export MESOS_master=unknown-machine:5050 export MESOS_master=zk://172.16.126.131:2181,172.16.126.132:2181,172.16.126.133:2181/mesos export MESOS_hostname=172.16.126.129 # Other options you're likely to want to set: export MESOS_log_dir=/var/log/mesos export MESOS_work_dir=/var/run/mesos export MESOS_isolation=cgroups/cpu,cgroups/mem
配置和master有點不同
啓動slave
root@web2:/mesos-slave/mesos/sbin# sh mesos-start-agents.sh Starting mesos-agent on 172.16.126.129 ssh 172.16.126.129 /mesos-slave/mesos/sbin/mesos-daemon.sh mesos-agent </dev/null >/dev/null
看看mesos 控制檯
slave已經經過zk成功註冊到了集羣裏。
測試一個shell命令看看是否能成功推送
在mesos集羣控制檯查看任務,可是爲何了執行了不少次,這個目前我不是很明白,須要進一步探索下
看看沙盒信息
到slave上去看看任務推送成功沒
root@web2:/mesos-slave/mesos/sbin# ls /tmp/ hsperfdata_root mesos test root@web2:/mesos-slave/mesos/sbin# cat /tmp/test push jobs from marathon to mesos slave
OK。成功了。!!!!