转载

单节点mesos + marathon + zookeeper

1,环境:ubuntu:15.10 (由于apt-get的源只支持15.04,所以今天只采用源码安装)

节点ip : 192.168.1.108

2, 安装第三方包

apt-get install -y autoconf libtool build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev

3,安装mesos:

wget http://mirror.bit.edu.cn/apach ... ar.gz

或者 git clone https://github.com/apache/mesos.git (0.29版本)

安装

# tar -xvf mesos-0.28.0.tar.gz && mv mesos-0.28.0 mesos

# mkdir build

# ./bootstrap

# ../configure

# make (机子性能不太好,半个多小时编译完)

# make install

4, 修改配置文件

修改/etc/hosts 添加hostname ip至最后(本环境是:192.168.1.108 zjx)

mesos默认编译完之后会在/usr/etc/mesos 生成三个配置文件 mesos-deploy-env.sh.template mesos-master-env.sh.template mesos-slave-env.sh.template

# cp mesos-deploy-env.sh mesos-deploy-env.sh.template

# cp mesos-master-env.sh mesos-master-env.sh.template

# cp mesos-slave-env.sh mesos-slave-env.sh.template

下面是我写的参数:

depoly 参数比较简单,按照默认的就好

root@zjx:/usr/etc/mesos# cat mesos-deploy-env.sh

#!/usr/bin/env bash

# This file contains environment variables that modify how the deploy

# scripts are run. For example, it can be used to configure SSH

# options (see below).

# Options for SSH.

export SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=2"

# Use sudo for launching masters and slaves.

export DEPLOY_WITH_SUDO=1

mesos master 的参数可以跟mesos-master --help 来进行添加:

root@zjx:/usr/etc/mesos# cat 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_hostname=zjx

export MESOS_cluster=zjx

export MESOS_ip=192.168.1.108

export MESOS_work_dir=/var/run/mesos

export MESOS_zk=zk://192.168.1.108:2181/mesos (不使用zookeeper的话,使用ip:5050)

#由于只有一台机器,quorum只能写1,写2,会导致master因core dump无法启动

export MESOS_quorum=1

mesos slave 参数,同样也可以根据mesos-slave --help 来进行设置,如下我只是简单添加了zk:

root@zjx:/usr/etc/mesos# cat mesos-slave-env.sh

# This file contains environment variables that are passed to mesos-slave.

# To get a description of all options run mesos-slave --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=zk://192.168.1.108:2181/mesos (如果不使用zookeeper,写为:export MESOS_master=192.168.1.108:5050)

# 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

创建masters,slaves文件,并写入主机名:

root@zjx:/usr/etc/mesos# echo zjx |tee masters

zjx

root@zjx:/usr/etc/mesos# echo zjx |tee slaves

zjx

root@zjx:/usr/etc/mesos#

至此,mesos的配置已经完成,如果不使用zookeeper,使用命令mesos-start-cluser.sh就可以启动集群

5,安装配置zookeeper:

apt-get install -y zookeeper zookeeperd

修改如下几个配置文件:

# echo 1 |tee /etc/zookeeper/conf/myid

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

更换server.1=192.168.1.108:2888:3888 中的ip为自己的ip(初始为:server.1=1.1.1.1:2888:3888)

其他的参数,可以根据需要自己打开

6,安装配置marathon:

# curl -O http://downloads.mesosphere.co ... 1.tgz

# tar xzf marathon-1.1.0-RC1.tgz

7, 启动zookeeper,mesos,marathon

启动zookeeper 服务

root@zjx:~/mesos# service zookeeper start

root@zjx:~/mesos# service zookeeper status

鈼[0m zookeeper.service - LSB: centralized coordination service

Loaded: loaded (/etc/init.d/zookeeper)

Active: active (running) since Sat 2016-04-16 12:05:58 CST; 5s ago

启动mesos单节点集群:

root@zjx:~/mesos# mesos-start-cluster.sh

Starting mesos-master on zjx

ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 zjx sudo /usr/sbin/mesos-daemon.sh mesos-master </dev/null >/dev/null

Starting mesos-slave on zjx

ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 zjx sudo /usr/sbin/mesos-daemon.sh mesos-slave </dev/null >/dev/null

Everything's started!

root@zjx:~/mesos# ps -ef|grep mesos

root 32564 1 2 12:04 ? 00:00:00 /usr/sbin/mesos-master

root 32629 1 9 12:04 ? 00:00:00 /usr/sbin/mesos-slave

root 32646 3325 0 12:05 pts/8 00:00:00 grep --color=auto mesos

root@zjx:/var/log# netstat -nlp |grep 5050

tcp 0 0 192.168.1.108:5050 0.0.0.0:* LISTEN 436/mesos-master

向mesos注册marathon框架:

root@zjx:~/marathon/marathon-1.1.0-RC1# ./bin/start --master zk://192.168.1.108:2181/mesos --zk zk://192.168.1.108:2181/marathon >log

root@zjx:~/marathon/marathon-1.1.0-RC1# ./bin/start --master zk://192.168.1.108:2181/mesos --zk zk://192.168.1.108:2181/marathon >log

I0416 12:13:24.683187 641 sched.cpp:222] Version: 0.28.0

2016-04-16 12:13:24,684:580(0x7f63e4c59700):ZOO_INFO@log_env@712: Client environment:zookeeper.version=zookeeper C client 3.4.5

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@716: Client environment:host.name=zjx

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@723: Client environment:os.name=Linux

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@724: Client environment:os.arch=4.2.0-30-generic

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@725: Client environment:os.version=#36-Ubuntu SMP Fri Feb 26 00:58:07 UTC 2016

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@733: Client environment:user.name=zjx

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@741: Client environment:user.home=/root

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@log_env@753: Client environment:user.dir=/home/zjx/marathon/marathon-1.1.0-RC1

2016-04-16 12:13:24,685:580(0x7f63e4c59700):ZOO_INFO@zookeeper_init@786: Initiating client connection, host=192.168.1.108:2181 sessionTimeout=10000 watcher=0x7f63f2d54fa0 sessionId=0 sessionPasswd=<null> context=0x7f644c009c28 flags=0

2016-04-16 12:13:24,704:580(0x7f63e3456700):ZOO_INFO@check_events@1703: initiated connection to server [192.168.1.108:2181]

2016-04-16 12:13:24,714:580(0x7f63e3456700):ZOO_INFO@check_events@1750: session establishment complete on server [192.168.1.108:2181], sessionId=0x1541d3f27be0007, negotiated timeout=10000

I0416 12:13:24.715201 664 group.cpp:349] Group process (group(1)@127.0.1.1:33472) connected to ZooKeeper

I0416 12:13:24.715288 664 group.cpp:831] Syncing group operations: queue size (joins, cancels, datas) = (0, 0, 0)

I0416 12:13:24.715335 664 group.cpp:427] Trying to create path '/mesos' in ZooKeeper

I0416 12:13:24.718236 664 detector.cpp:152] Detected a new leader: (id='6')

I0416 12:13:24.718578 664 group.cpp:700] Trying to get '/mesos/json.info_0000000006' in ZooKeeper

I0416 12:13:24.719388 664 detector.cpp:479] A new leading master (UPID=master@192.168.1.108:5050) is detected

I0416 12:13:24.719570 664 sched.cpp:326] New master detected at master@192.168.1.108:5050

I0416 12:13:24.720021 664 sched.cpp:336] No credentials provided. Attempting to register without authentication

I0416 12:13:24.722645 652 sched.cpp:703] Framework registered with 8d8a7f02-c28a-4162-819f-36fb5abe0aee-0000

至此marathon已经成功注册,framework id为8d8a7f02-c28a-4162-819f-36fb5abe0aee-0000

同时也可以从mesos-master 的日志中看到marathon注册的信息:

I0416 12:13:24.720573 437 master.cpp:2231] Received SUBSCRIBE call for framework 'marathon' at scheduler-54d237dd-325b-4fda-95ea-310c162f7d43@127.0.1.1:33472

I0416 12:13:24.720669 437 master.cpp:2302] Subscribing framework marathon with checkpointing enabled and capabilities [ ]

I0416 12:13:24.721089 437 hierarchical.cpp:265] Added framework 8d8a7f02-c28a-4162-819f-36fb5abe0aee-0000

I0416 12:13:24.721387 437 master.cpp:5324] Sending 1 offers to framework 8d8a7f02-c28a-4162-819f-36fb5abe0aee-0000 (marathon) at scheduler-54d237dd-325b-4fda-95ea-310c162f7d43@127.0.1.1:33472

I0416 12:13:24.722695 437 master.cpp:4763] Status update TASK_FINISHED (UUID: d74fa63d-51e9-49c2-82f5-9a59e83ba67c) for task test.e82a24ff-037d-11e6-9ff6-ce578d904a3e of framework 8d8a7f02-c28a-4162-819f-36fb5abe0aee-0000 from slave c33427e7-1f5f-425a-9f7f-0b9c3502d243-S0 at slave(1)@127.0.1.1:5051 (zjx)

现在就可以登陆浏览器进行任务测试了。mesos: ip:5050 marathon: ip:8080

a3721659a@hotmail.com , 欢迎一起交流学习成长

ZJX

原文  http://dockone.io/article/1221
正文到此结束
Loading...