Mesos + Marathon 安装与使用

原创 2015年06月19日 20:24:41

简介

Mesos 是一个集群资源的自动调度平台,Apache 开源项目,它的定位是要做数据中心操作系统的内核。目前由 Mesosphere 公司维护,更多信息可以自行查阅 Mesos 项目地址或 Mesosphere

Marathon 是可以跟 Mesos 一起协作的一个 framework,用来运行持久性的应用。

安装

一共需要安装四种组件,mesos-master、marathon、zookeeper 需要安装到所有的主节点,mseos-slave 需要安装到从节点。

mesos 利用 zookper 来进行主节点的同步,以及从节点发现主节点的过程。

源码编译

下载源码

git clone https://git-wip-us.apache.org/repos/asf/mesos.git

安装依赖

#jdk-7
sudo apt-get update && sudo apt-get install -y openjdk-7-jdk
#autotools
sudo apt-get install -y autoconf libtool
#Mesos dependencies.
sudo apt-get -y install build-essential python-dev python-boto libcurl4-nss-dev libsasl2-dev maven libapr1-dev libsvn-dev

编译&安装

$ cd mesos

# Bootstrap (Only required if building from git repository).
$ ./bootstrap

$ mkdir build
$ cd build && ../configure
$ make
$ make check && make install

软件源安装

ubuntu 系统为例。

安装 Docker,不再赘述,可以参考 这里

# Setup
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)

# Add the repository
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 zookeeper mesos marathon

基于 Docker

将基于如下镜像:

  • ZooKeeper:https://registry.hub.docker.com/u/garland/zookeeper/
  • Mesos:https://registry.hub.docker.com/u/garland/mesosphere-docker-mesos-master/
  • Marathon:https://registry.hub.docker.com/u/garland/mesosphere-docker-marathon/

其中 mesos-master 镜像将作为 master 和 slave 容器使用。

导出本地机器的地址到环境变量。

HOST_IP=10.11.31.7

启动 Zookeepr 容器。

docker run -d \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
garland/zookeeper

启动 Mesos Master 容器。

docker run --net="host" \
-p 5050:5050 \
-e "MESOS_HOSTNAME=${HOST_IP}" \
-e "MESOS_IP=${HOST_IP}" \
-e "MESOS_ZK=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_PORT=5050" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_QUORUM=1" \
-e "MESOS_REGISTRY=in_memory" \
-e "MESOS_WORK_DIR=/var/lib/mesos" \
-d \
garland/mesosphere-docker-mesos-master

启动 Marathon。

docker run \
-d \
-p 8080:8080 \
garland/mesosphere-docker-marathon --master zk://${HOST_IP}:2181/mesos --zk zk://${HOST_IP}:2181/marathon

启动 Mesos slave 容器。

docker run -d \
--name mesos_slave_1 \
--entrypoint="mesos-slave" \
-e "MESOS_MASTER=zk://${HOST_IP}:2181/mesos" \
-e "MESOS_LOG_DIR=/var/log/mesos" \
-e "MESOS_LOGGING_LEVEL=INFO" \
garland/mesosphere-docker-mesos-master:latest

接下来,可以通过访问本地 8080 端口来使用 Marathon 启动任务了。

配置说明

ZooKeepr

ZooKeepr 是一个分布式应用的协调工具,用来管理多个 Master 节点的选举和冗余,监听在 2181 端口。

配置文件在 /etc/zookeeper/conf/ 目录下。

首先,要修改 myid,手动为每一个节点分配一个自己的 id(1-255之间)。

zoo.cfg 是主配置文件,主要修改如下的三行(如果你启动三个 zk 节点)。

server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888

主机名需要自己替换,并在 /etc/hosts 中更新。

第一个端口负责从节点连接到主节点的;第二个端口负责主节点的选举通信。

Mesos

Mesos 的默认配置目录分别为:

  • /etc/mesos:共同的配置文件,最关键的是 zk 文件;
  • /etc/mesos-master:主节点的配置,等价于启动mesos-master 时候的默认选项;
  • /etc/mesos-slave:从节点的配置,等价于启动mesos-master 时候的默认选项。

主节点

首先在所有节点上修改 /etc/mesos/zk,为 主节点的 zookeeper 地址列表,例如:

zk://ip1:2181,ip2:2181/mesos

创建 /etc/mesos-master/ip 文件,写入主节点监听的地址。

还可以创建 /etc/mesos-master/cluster 文件,写入集群的别名。

之后,启动服务:

sudo service mesos-master start

更多选项可以参考这里

从节点

在从节点上,修改 /etc/mesos-slave/ip 文件,写入跟主节点通信的地址。

之后,启动服务。

sudo service mesos-slave start

更多选项可以参考这里

此时,通过浏览器访问本地 5050 端口,可以看到节点信息。

mesos

Marathon

启动 marathon 服务。

sudo service marathon start

启动成功后,在 mesos 的 web界面的 frameworks 标签页下面将能看到名称为 marathon 的框架出现。

同时可以通过浏览器访问 8080 端口,看到 marathon 的管理界面。

marathon

此时,可以通过界面或者 REST API 来创建一个应用,Marathon 会保持该应用的持续运行。

转载请注明:http://blog.csdn.net/yeasy/article/details/46564833 

Mesos+Marathon对比Kubernetes

本文是我之前在技术选型时给团队做的一次分享内容,做了一次相对全面的关于Kubernetes 1.2 和 Mesos 0.28 + Marathon 1.2的对比, 其中有部分内容是它们特有的一些特性介...
  • WaltonWang
  • WaltonWang
  • 2017年01月11日 10:31
  • 19270

apache mesos 入门(7)——多节点mesos+marathon环境部署

zookeeper:是一个分布式环境下的协调工作和配置集中管理平台,它提供的功能包括:配置维护、域名服务、分布式同步、组服务等。mesos采用zookeeper来处理多节点情况下的failover问题...
  • weiyuanke
  • weiyuanke
  • 2016年04月27日 16:12
  • 1020

在 RHEL 7.1 上设置 Mesos/Marathon 集群

Mesos 是一套分布式集群管理器,旨在通过以动态方式于不同任务之间共享资源的方式改进资源使用率;Marathon 是一套用于在 Mesos 之上运行长期运行应用程序或者服务的框架; SOA是面向服务...
  • linuxnews
  • linuxnews
  • 2016年11月03日 22:46
  • 1065

Mesos实战总结

我们使用Mesos也有一段时间了,目前有两个项目使用Mesos作为底层资源管理系统,各自部了一套集群。这中间对比Mesos的论文和源码实现,到底哪些功能实现了,哪些功能未实现,版本是否稳定,使用是否顺...
  • zbf8441372
  • zbf8441372
  • 2014年03月14日 14:49
  • 6622

marathon参考(1)应用基础

marathon 应用基础入门
  • zhuchuangang
  • zhuchuangang
  • 2016年04月02日 17:16
  • 1982

Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)

 随着"互联网+"时代的业务增长、变化速度及大规模计算的需求,廉价的、高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统。Docker及其相...
  • zhufuyi
  • zhufuyi
  • 2017年05月27日 16:11
  • 1481

marathon参考(3)服务发现和负载均衡

Mesos-DNS Marathon-lb haproxy-marathon-bridge
  • zhuchuangang
  • zhuchuangang
  • 2016年04月05日 17:36
  • 3690

mesos下载、准备安装环境、编译以及测试

参考网址:http://mesos.apache.org/gettingstarted/ 实验环境:mesos版本:0.21.0、操作系统:Red Hat 6 为了了解Spark的三种部署stan...
  • zhaoshensky
  • zhaoshensky
  • 2016年02月28日 16:35
  • 1892

集群中关于mesos安装的步骤 总结

关于mesos安装的步骤 总结 在master和slaver上进行如下的操作: 1.      在安装mesos之前,先安装如下的工具 [root@master ~]# yum install ...
  • truirui
  • truirui
  • 2014年11月22日 09:45
  • 1542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mesos + Marathon 安装与使用
举报原因:
原因补充:

(最多只允许输入30个字)