Mesos

一、Mesos 介绍

  • Mesos 的 master/slave 架构设计

    • master: 是一个全局资源调度器, 很轻所以只保存了 framework(计算框架) 和 slave 的状态, 这些 slave 和 framework 可以通过注册生成到 master 中, 所以可以使用 zookeeper 解决 Mesos master 的单点故障
    • slave: master 使用策略把 slave 的空闲资源分配给 framework, slave 主要功能是汇报任务的状态和启动各个 framework 的 executor
    • framework: framework 通过自己向 Mesos master 中注册,接入到 Mesos 中
  • Mesos 的双层调度框架

    • 第一层,由mesos将资源分配给框架;
    • 第二层,框架自己的调度器将资源分配给自己内部的任务。在Mesos中,各种计算框架是完全融入Mesos中的,
  • Mesos 优点和缺点

    • 优点:可以同时支持短类型任务以及长类型服务,比如 webservice 以及 SQL service。 资源分配粒度粗,比较适合我们产品多种计算框架并存的现状
    • 缺点:Mesos中的DRF调度算法过分的追求公平,没有考虑到实际的应用需求。在实际生产线上,往往需要类似于Hadoop中Capacity Scheduler的调度机制,将所有资源分成若干个queue,每个queue分配一定量的资源,每个user有一定的资源使用上限;更使用的调度策略是应该支持每个queue可单独定制自己的调度器策略,如:FIFO,Priority等
  • 与 Yarn 的区别

    • 全局的 ResourceManager(RM)/NodeManager(NM)/ApplicationMaster(AM), 跟 Mesos 的 master/slave/framework 不同
    • Mesos 使用 Linux container 隔离资源, Yarn 使用 NodeManager container 隔离资源
    • Yarn 中 ResourceManager 是资源的分配的决策者(根据 ApplicationMaster 申请的资源判断)。 Mesos 中 framework 是资源的角色着
    • Yarn 自带了多个资源调度器,如 Capacity Scheduler和Fair Scheduler, 而 Mesos 要在 framework 中自己实现
    • ResourceManager 负责所有应用的任务调度, 而 Mesos 要在 framework 中实现作业的调度