mesos学习笔记2 Scheduler开发

本文详细介绍了Mesos的任务调度流程,包括agent与master的心跳机制、资源分配策略、任务状态更新机制以及SchedulerDriver的主要职责。此外,还探讨了资源Offer的处理方式、Filter过滤器的应用及如何利用自定义属性Attribute来指定任务执行的Agent。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考

Scheduler Http Api:http://mesos.apache.org/documentation/latest/scheduler-http-api/ 
Java Api:http://mesos.apache.org/api/latest/java/

任务下发流程

  1. agent向master汇报心跳
  2. master基于offerResource接口,将资源offer给scheduler
  3. scheduler基于自己的任务状态,决定是acceptOffer或者declineOffer,如果当前有合适任务,那么acceptOffer,将任务下发给master
  4. master将任务下发给agent
  5. agent执行完成后,通过statusUpdate将任务状态汇报给master
  6. master将任务执行状态返回给taskScheduler
  7. taskScheduler完成任务

TaskScheduler开发

当前scheduler开发主要有三个类:

  • Scheduler:

    • 框架的回调接口类,开发者必须实现该类
    • 当状态发生变更时,master会回调该类的接口,状态包括:scheduler注册,resourceOffer,任务状态变更,slave或者executor异常等
    • master回调时,一个时间点只会进行一次回调,因此在实现该类接口时,需要快速进行处理,不要长时间hang住。
  • SchedulerDriver:

    • 负责主动发起跟master的交互
    • 负责scheduler生命周期管理:注册,启动,停止等
    • 负责task的生命周期管理:创建,删除,停止等
    • Scheduler状态回调的响应,比如响应offerResource,响应statusUpdate等
  • MesosSchedulerDriver:

    • Mesos默认的SchedulerDriver实现

资源Offer

offer_timeout 设置

master默认资源分配策略是消极的,体现在以下几个方面:

 1. 当agent汇报资源时,master默认只会先把offer发给一个scheduler,当这个scheduler做出响应(accept或者decline)后,再发给下一个
 2. master默认offer_timeout设置是永不超时
 3. 只有当scheduler异常退出或者自己显式向master取消注册,master才会回收scheduler对应的offers

基于以上三点,如果当master在处理offer时hang住,或者没有处理该offer信息(比如直接丢弃),那么该offer上的资源将永远无法使用

解决方案:

  1. master设置offer_timeout,该参数表示,如果scheduler在timeout时间内没有回应offer,那么master就认为offer已经过期,会重新再发起offer
  2. scheduler在处理offerResource时,如果资源不需要,需要显示使用declineOffer将资源拒绝

Filter过滤器

scheduler在declineOffer时,可以使用filter进行过滤,filter里面有变量refuse_seconds,可以设置对于该offer的refuse时间

资源属性

由于当前Slave在汇报的时候,只是汇报资源信息(CPU/MEM),在某些情况下,我们希望把任务下发到特定类型的Agent上执行,比如CPU主频较高的Agent,OS为Centos7的Agent,OS为windows的Agent等等,现有机制是无法实现的,因为agent并没有汇报这些信息,怎么办呢?

解决方案:

  1. Agent在向master注册时,可以在slaveInfo里面填充自定义属性Attribute,比如OS信息,CPU主频信息等等
  2. master再像scheduler提供resourceOffer时,会把master的Attribute属性带到offer中
  3. scheduler在offerResource响应时,可以检查offer的Attribute属性(即master的Attribute属性),再进行判断

 

 

 

 

转载于:https://www.cnblogs.com/SailorXiao/p/5786492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值