本文共 1091 字,大约阅读时间需要 3 分钟。
学习mesos前先看看它的白皮书,对它有一个整体上的认知
mesos的出现主要解决的问题是资源的粒度划分问题,当你在一个集群上跑多个不同的分布式计算框架时,你的资源分配的粒度基本都是以机器作为粒度的,而mesos上则是可以将一台机器分为更加细的粒度
设计图:
因为markdown放图太麻烦,所以去官网链接看吧
总体来说,mesos分为了三个部分,master和slave和各种framework,其中master负责资源的分配,slave则是会向master注册本机的资源,并且负责执行各种framework分配的任务,而framework则由两个部分构成,scheduler和executor,其中scheduler注册到主节点,将作业分解为任务,并申请资源并监控任务运行状况,executor则负责在slave上执行task
资源分配,master只负责整个作业的资源分配,framework的scheduler才是决定每个任务使用多少资源。
流程:
图可以参考
隔离:
鲁棒性和可扩展性:
为避免framework的调度器经常性拒绝资源,mesos提供了filters,filters告知了framework的调度器的一些偏好,当然,filters并不能作为调度器是否接受资源的标准,最后还是由调度器自己决定,filters只是为了减少拒绝次数
如果某个 framework 在超时内没有为分配的资源返回要运行的任务,则回收该资源。
容错性:
因为整个mesos集群都依赖于master节点,所以要避免master节点的当点故障,所以mesos有多个后备master节点,当当前活跃的节点挂掉,mesos会使用zookeeper在后备master节点中选取出一个新的master节点,同时 master 节点可以通过 slave 和 framework 发来的消息重建内部状态。
当任务执行失败时,mesos将错误交给framework的调度器,由它来决定怎么处理
为了避免调度器失效,mesos允许一个framework注册多个调度器,当一个失效,mesos通过master来激活另一个
转载地址:http://pigmi.baihongyu.com/