`
m635674608
  • 浏览: 4943545 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Mesos 基本原理与架构

 
阅读更多

首先,Mesos 是一个资源调度框架,并非一整套完整的应用管理平台,本身是不能干活的。但是它可以比较容易的跟各种应用管理或者中间件平台整合,一起工作,提高资源使用效率。

架构

mesos-arch master-slave 架构,master 使用 zookeeper 来做 HA。

master 单独运行在管理节点上,slave 运行在各个计算任务节点上。

各种具体任务的管理平台,即 framework 跟 master 交互,来申请资源。

基本单元

master

负责整体的资源调度和逻辑控制。

slave

负责汇报本节点上的资源给 master,并负责隔离资源并执行具体的任务。

隔离机制当然就是各种容器机制了。

framework

framework 是实际干活的,可以理解为 mesos 上跑的 应用,需要注册到 master 上。

一般包括两个主要组件:

  • scheduler:注册到主节点,按照作业分解为任务,并申请资源并监控任务运行状况(类似 YARN 中的 ApplicationMaster);
  • executor:安装在 slave 节点上,负责执行本 framework 的具体任务。

framework 分两种:一种是对资源需求可以 scale up 或者 down 的(Hadoop、Spark);一种是对资源需求大小是固定的(MPI)。

这些组件之间通过 Protocal Buffer 消息进行通信,实际上就是一个个 socket server。

调度

对于一个资源调度框架来说,最核心的就是调度机制,怎么能快速高效的完成对某个 framework 资源的分配(最好当然是能直接猜到它的实际需求)。

两层调度算法:

master 先调度一大块资源给某个 framework,framework 自己的 scheduler 再实现内部的细粒度调度。

调度机制支持插件。默认是 DRF。

基本调度过程

调度通过 offer 方式交互:

  • master 提供一个 offer(一组资源) 给 framework;
  • framework 可以决定要不要,如果接受的话,返回一个描述,说明自己希望如何使用和分配这些资源(可以说明只希望使用部分资源,则多出来的会被 master 收回);
  • master 则根据 framework 的分配情况发送给 slave,以使用 framework 的 executor 来按照分配的资源策略执行任务。

过滤器

framework 可以通过过滤器机制告诉 master 它的资源偏好,比如希望分配过来的 offer 中节点上至少空闲多少资源,或者只接受某些节点。

主要是为了加速资源分配的收敛。

回收机制

master 可以通过回收计算节点上的任务来动态调整长期任务和短期任务的分布。如果某个 framework 在超时内没有为分配的资源返回要运行的任务,则回收该资源。

HA

master

master 节点存在单点失效问题,所以肯定要上 HA,目前主要是使用 zookpeer 来热备份。

同时 master 节点可以通过 slave 和 framework 发来的消息重建内部状态(具体能有多快呢?这里不使用数据库可能是避免引入复杂度。)。

framework 通知

framework 中相关的失效,master 将发给它的 scheduler 来通知。

依赖的第三方技术

glog

开源的 C++ 日志库。

gmock

开源 C++ 单元测试框架。

Libprocess

基于 C/C++ 实现的高效的基于消息的网络通信模型,可以用于多个组件之间的通信。考虑规模的软件基本上都喜欢基于消息/事件的松散耦合模型。

Protocol buffer

跨语言的对象传递(序列化、反序列化),类似 thrift。

zookeeper

用于解决 master 节点集群的 HA。

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

分享到:
评论

相关推荐

    Mesos容器引擎的架构设计和实现解析

    引言:提到容器,大家第一时间都会想到Docker,毕竟Docker是目前最为流行的容器开源项目,它实现了一个容器引擎(Docker engine),并且为容器的创建和管理、容器镜像的生成、分发和下载提供一套非常便利的工具链,...

    Mesos实战.pdf

    Mesos实战

    mesos运行测试结果分析

    mesos运行分析结果 mesos运行分析结果 mesos运行分析结果

    mesos实战中文版

    mesos实战中文版 178页 mesos实战中文版 178页 mesos实战中文版 178页

    Mesos集群运维vagrant-mesos.zip

    vagrant-mesos 是一款运维工具,可以使 Mesos 集群的安装和运行更加容易。vagrant-mesos 支持 Mesos 0.21.0 集群,同时包括 Marathon (0.8.0) 和 Chronos (2.1.0)正在运行的框架服务器节点。这意味着,你可以使用 ...

    Mesos架构以及源码浅析

    可以说这个目标是所有宣称自己是DCOS的系统的共同目标,本文从架构和源码层面分析Mesos以及周边框架,看看Mesos是如何实现这个目标的,当前距这个目标还有多大差距。最后比较了一下Mesos和Kubernetes这两个都受...

    Mesos:大数据资源调度与大规模容器运行最佳实践.pdf

    Mesos:大数据资源调度与大规模容器运行最佳实践

    Apache.Mesos.Essentials.1783288

    Build and execute robust and scalable applications using Apache Mesos About This Book Deploy Apache Mesos to concurrently run cutting edge data processing frameworks like Spark, Hadoop and Storm in ...

    Mesos资源共享平台

    Mesos A Platform for Fine-Grained Resource Sharing in the Data Center的中文翻译

    从Mesos到Kubernetes

    从Mesos到Kubernetes

    走进Docker 62课 基本概念和架构 技术原理 容器 镜像与仓库 部署应用

    Docker 基本概念和架构 Docker 容器 Docker 容器的数据管理 Docker 容器的网络连接 Docker 技术原理 Docker 镜像与仓库(一) Docker客户端和守护进程 Docker容器的跨主机访问 Docker源码分析(一)Docker介绍 ...

    apache-mesos-cookbook

    Set up Mesos on different operating systems Use the Marathon and Chronos frameworks to manage multiple applications Work with Mesos and Docker Integrate Mesos with Spark and other big data frameworks ...

    ceph-mesos, 用于扩展Ceph集群的Mesos框架.zip

    ceph-mesos, 用于扩展Ceph集群的Mesos框架 在 Apache Mesos上的使用 Docker 来扩展Ceph集群的Mesos框架。 它旨在成为一个快速而可靠的解决方案。目前,它只能:启动 1,3 osd,1 radosgw 。 基于的接受 RESTful ...

    Hadoop技术内幕深入解析YARN架构设计与实现原理

    Hadoop技术内幕深入解析YARN架构设计与实现原理内容简介:本书从应用角度系统讲解了YARN的基本库和组件用法、应用程序设计方法、YARN上流行的各种计算框架(MapReduce、Tez、Storm、Spark),以及多个类YARN的开源...

    中国移动浙江公司Mesos实践

    中国移动浙江公司Mesos实践,对于了解Mesos云有很多帮助

    Mesos中文文档

    Mesos 中文文档是最初由数人科技几名员工在业余时间发起并维护的,目的是提供一个围绕 Mesos 的理论+实践的知识共享平台,做到人人贡献、人人受益。我们会搜罗翻译 Mesos 及其周边组件的介绍,知识分享,使用说明...

    sample-fluentd-on-mesos-docker, 在 Mesos Docker 马拉松上,Fluentd.zip

    sample-fluentd-on-mesos-docker, 在 Mesos Docker 马拉松上,Fluentd Mesos Docker 马拉松上的 Fluentd这是一个在 mesos,Docker 和马拉松上运行的fluentd示例。概述 PrerequireVagrant 1.4.1 ( 我只检查了这个版本...

    Mesos架构与去哪儿的统一框架实践

    在官方文档中,Mesos定义成一个分布式系统内核。它使用和Linux内核相同的设计原则,只是设计在...Mesos的架构图如下。在图中,Master主要负责slave以及Frameworkscheduler的注册,以及资源分配;Slave主要接受来自mast

Global site tag (gtag.js) - Google Analytics