一、Mesos和Marathon是什么

1.1 Mesos是什么
Mesos是什么呢,可以用这样一个例子进行说明。假定某公司需要频繁进行大数据计算,该任务运行时需要N多个CPU和内存,为了满足这个需求,有两种方案:
1.使用小型服务器,为任务提供足够的资源。
2.采用分布计算,即提供一批普通配置的机器,组成集群,将计算任务拆分到各个机器上计算,然后汇总结果。
Mesos就是实现这类分布式计算的框架,在分布式计算过程中,Mesos会对上述计算机资源进行管理和分配。
1.2 Marathon是什么
Marathon按照官方的说法是基于Mesos的私有PaaS,它实现了Mesos的Framework。Marathon实现了服务发现和负载平衡、为部署提供REST API服务、授权和SSL、配置约束等功能。Marathon支持通过Shell命令和Docker部署应用。提供Web界面、支持cpu/mem、实例数等参数设置,支持单应用的Scale,但不支持复杂的集群定义。Marathon能够支持运行长服务,比如Web应用等。Marathon能够原样运行任何Linux二进制发布版本,比如Tomcat Play等。
1.3 Mesos和Marathon的关系
如果将Mesos类比为操作系统的内核,负责资源调度。则Marathon可以类比为服务管理系统,比如init,systemd或upstart等系统,用来管理应用的状态信息。Marathon将应用程序部署为长时间运行的Mesos任务。

二、Mesos框架简介

在Mesos的框架中存在如下基本概念:

  • Mesos-matser: 协调全部的slave,并确定每个节点的可用资源,聚合计算跨节点的所有可用资源的报告,然后向注册到Master的Framework发出资源邀约。
  • Mesos-slave:向Master汇报自己的空闲资源和任务的状态,负责管理本节点上的各个mesos-task,在framework成功向Master申请资源后,收到消息的slave会启动相应framework的executor。
  • Framework:Hadoop,Spark等,通过MesosSchedulerDriver接入Mesos。Framework由两部分组成,调度器(Scheduler)和执行器(Executor)。Scheduler在master上注册,获取提供的资源,Executor进程在slave节点上启动,运行framework的任务。
  • Executor:执行器,用于启动计算框架中的task。
    2.1 Mesos框架图如下图所示
    在框架图中framework有两种,一种是Hadoop;一种是MPI。从框架图中可以看出,Mesos是一个master/slave结构,其中master根据调度策略(比如公平调度和优先级方式),来决定将slave节点上的空闲资源(比如:CPU、内存或磁盘等)的提供给framwork使用。另外Mater会保存framework和mesos slave的一些状态,这些状态可用通过framework和slave重新注册来进行重构,因此可用使用zookeeper来解决mesos matser单点故障的问题。slave主要功能是向Mater汇报任务状态和启动framwork的executor。

    2.2 Mesos业务逻辑流程

    Mesos的框架图的逻辑流程分为如下四步:
  • 第一步,Slave1节点向master报告它有空闲资源4个CPU和4GB内存。
  • 第二步,Master发送一个Resource Offer给Framework1来描述Slave1有多少可用资源。
  • 第三步,FrameWork1中的FW Sheduler会答复Master,有两个task需要运行在Slave1,一个Task需要< 2个cpu,1gb内存>,另一个Task需要< 1个cpu,2gb内存>
  • 第四步,Master将任务需求资源发送给Slave1,Slave1分配适当的资源给Framework1的Executor,然后executor开始执行这两个任务,因为Slave1还剩< 1CPU,1gb内存>的资源未分配,分配模块还可用将这些资源提供给Framwork2来使用。

三、Marathon简介

Marathon是基于MesosFramework的开源框架,框架图可参考如下。Marathon可以指定每个应用程序需要的资源以及要运行此程序需要多少实例。它可以使用的集群资源对失败的任务自动做出响应。
如果某个Mesos Slave宕机或应用的某个实例退出、失败,Marathon将会自动启动一个新的实例,来替换掉失败的实例。Marathon也允许用户在部署时指定应用程序彼此间的依赖关系,这样就可以保证某个应用程序实例不会在它依赖的数据库实例启动前启动。

Marathon提供对外的API接口函数,比如:
1.需要通过Marathon启动容器

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" \
localhost:8080/v2/apps -d '{
"container": {"image": "docker:///libmesos/ubuntu", "options": ["--privileged"]},
"cpus": 0.5,
"cmd": "sleep 500",
"id": "docker-tester",
"instances": 1,
"mem": 300
}'

2.通过Marathon Rest API检查启动任务的状态

curl -X GET -H "Content-Type: application/json" localhost:8080/v2/apps

参考资料

1.关于 Mesos,你知道多少?
2.Mesos入门整理
3.使用Mesos和Marathon管理Docker集群
4.使用Mesos和Marathon管理Docker集群
5.mesos概述
6.Mesos框架简介
7.Juice-一种基于MesosFramework的任务云框架
8.Marathon

Mesos和Marathon简介和浅析相关推荐

  1. 云计算学习总结(1)——PaaS云平台部署之在Centos7搭建Mesos+Zookeeper+Marathon+Docker单机集群

    ----------------------------------------------------------------------------------- ========Mesos+Do ...

  2. 云计算学习总结(1)——PaaS云平台部署之在Centos7搭建Mesos+Zookeeper+Marathon+Docker单机集群...

    ----------------------------------------------------------------------------------- ========Mesos+Do ...

  3. Docker、Mesos和Marathon剖析以及入门实战

    本文讲的是Docker.Mesos和Marathon剖析以及入门实战,[编者的话]国外广为流传的一个比喻是:在传统服务模式下,可以想象服务器就是IT的宠物(Pets),给它们取名字,并精心抚养长大,当 ...

  4. 搭建基于Jenkins, Apache Mesos和Marathon的弹性高可用的持续集成环境

    2019独角兽企业重金招聘Python工程师标准>>> [编者按]持续集成的开发实践是目前的一个热门话题,在本文中,数人科技云平台负责人周伟涛解析其利用开源的Jenkins,Apac ...

  5. mesos marathon mysql_Mesos和Marathon简介

    Mesos是apache的开源项目,是使用C++开发的资源管理框架.假设我们的数据中心有众多的服务器,这些服务器要运行业务程序,业务程序随着业务规模的增加往往需要扩容,在运维层面会遇到的问题是,运维无 ...

  6. Mesos实践:基于MZM的PAAS的构建(3):Marathon简介

    为分布式微服务框架提供合适的PAAS平台,使用成熟的M(Mesos)Z(Zookeeper)M(Marathon)可以作为选择之一.在本文中将会对Marathon进行简单的介绍. URL https: ...

  7. docker集群——介绍Mesos+Zookeeper+Marathon的Docker管理平台

    容器为用户打开了一扇通往新世界的大门,真正进入这个容器的世界后,却发现新的生态系统如此庞大.在生产使用中,不论个人还是企业,都会提出更复杂的需求.这时,我们需要众多跨主机的容器协同工作,需要支持各种类 ...

  8. Murano的Symphony和Mesos(Marathon)的package和imge全部做好了

    三个月,由搭环境到做image,再到compose package,然后再deploy 遇见好多问题,不过在师傅的帮助和自己的努力下都一一解决了. 接下来再做一个ASC(Application Ser ...

  9. docker+mesos+marathon

    鉴于原作者要求必须将原地址粘贴下 http://www.chuck-blog.com/chuck/368.html  前言 针对"互联网+"时代的业务增长.变化速度及大规模计算 ...

最新文章

  1. 团购步入巨头时代,半自助团购或将极大提升网民网购质量
  2. python实现冒泡排序视频_Python实现冒泡排序算法的完整实例
  3. SolrJ添加商品数据
  4. sqlite的几个常用方法
  5. JAVA 雪花算法 唯一ID生成工具类
  6. 一直认为in,exists 不走索引,被同事鄙视了……
  7. 小牛电动京东众筹活动中的违约行为记录
  8. android sdk 8.1.0,OneAPM版本更新:Android SDK 1.0.8
  9. .Net Micro Framework研究—让MF支持鼠标
  10. Javaweb开发之git资料
  11. phpStudy安装框架教程
  12. ARP欺骗之——原理分析
  13. 银行管理系统(c链表实现)
  14. 手把手教你用图灵机器人做微信公众号自动回复助手
  15. 关于缓存一致性协议、MESI、StoreBuffer、InvalidateQueue、内存屏障、Lock指令和JMM的那点事
  16. 微信开发者工具打不开的几种解决方法
  17. aix kill java_AIX环境Java进程cpu瓶颈分析(转)
  18. linux下怎样运行oyrhon,Linux 下从头再走 GTK+-3.0 (一)
  19. 【听如子说】-python模块系列-AIS编解码Pyais
  20. System时间计算方式与的单位转换

热门文章

  1. javacv实现拉流播放
  2. win7有linux,Win7走了Linux份额是否有机会崛起?
  3. Nacos小坑——启动异常以及正常启动后账号密码错误问题解决
  4. linux在中国的发展
  5. 百度地图离线开发demo(vue+百度地图3.0+百度瓦片)(仅供参考,学习探讨)
  6. 《Web前端设计与开发》实验三:HTML+CSS综合实验
  7. numpy_zero函数
  8. java是先有类还是先有对象_Java中关于先有鸡还是先有蛋的问题----ClassObject
  9. 什么是目标检测--Object Detection
  10. liunx系统下安装crontab