什么是Mesos Framework开发

发布时间:2021-10-12 14:20:14 作者:柒染
来源:亿速云 阅读:168

今天就跟大家聊聊有关什么是Mesos Framework开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Mesos 介绍

Mesos 官网是这样介绍自己的:

Program against your datacenter like it’s a single pool of resources

Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.

翻译过来就是:

Mesos 使你的数据中心看起来像一个资源池。

Apache Mesos 将CPU、内存、存储和其他计算资源从机器(物理机或虚拟机)中抽象出来,从而使容错和弹性的分布式系统易于构建和有效运行。

通俗来讲就是:

Mesos 作为主机上各种资源的管理者,使你可以在Mesos之上更方便地维护和使用这些资源,进行程序的分布式运行和管理。

更详细的介绍可以去官网查看文档。

Mesos Framework 介绍

Mesos Framework 由两部分组成:

既然Mesos是主机资源的管理者,那么Framework中的Scheduler就是主机资源的调度者,它负责决定使用哪些资源下发哪些任务,而Executor就是下发任务工作的执行者,它真正地负责执行任务的运行工作。

Mesos 会将主机上的资源抽象成一片片的资源邀约(resources offer),不断的发给以特定角色(role)注册在Mesos上的Scheduler,然后Scheduler拿到这些offer后,根据是否是任务所需的将这些offer进行拒绝(decline)或接受(accept),如果可以接受这个offer,就要告诉Mesos Master我要用多少资源,以及下发什么样的任务,之后Mesos Master将这些信息经过一系列的流转,最终通知给每台主机上运行的Executor,实现任务在主机上的运行工作。

Framework Scheduler 开发

在了解了Mesos Framework的大致原理后,就可以尝试开发Framework了,本文主要介绍Scheduler的开发。

Mesos官网文档中有对于Framework开发的指导 Framework Development Guide,我提取了其中比较关键的地方:

框架开发指南

对于Scheduler开发,有两种方式:

对于第一种方式,Scheduler开发人员通过注册事件回调方法,来实现自定义的调度逻辑。因为SchedulerDriver 接口是用C++编写的,这要求Scheduler开发人员使用C++语言,其他语言使用C++编译而来的本地库。

NameLanguage
Scheduler LibraryC++
Scheduler Adapter (depends on native libmesos)Java

第二种方式,是新版本Mesos推荐的用法,各种语言现成的的库也有很多,详情查看: HTTP API client libraries

随后会通过示例程序,来介绍这两种方式的环境搭建。

为了保证多Scheduler的可扩展性,Mesos给了以下建议:

在操作上,当有不同的Scheduler共存时,可以做以下事情来确保Scheduler能够获取它们所需的资源:

Scheduler 开发示例

我在github上放了两个示例程序,分别使用上面提到的两种方式。

通过实现SchedulerDriver接口

github地址:mesos-framework-demo

语言:Java

由于使用了C++本地库,所以在运行jar包时,要在/usr/local/lib放入mesoslib.so文件,也可以通过设置环境变量来改变这个路径:

MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/mesoslib.so

查看clone下来的代码,完成的工作有:

1.设置FrameworkInfo,主要包括:

2.实现org.apache.mesos.Scheduler接口的方法,主要包括:

3.配置Zk地址,用于发现Mesos Master

完成以上配置及实现,即可实现了一个简单的Framework Scheduler,当注册成功后,在Mesos的/frameworks页面,可以看到你启动的Framework。

示例项目中,mesos.proto是数据的结构定义,里面有各种数据的类型与结构关系。

通过HTTP API

github地址:mesos-framework-go-example

语言:golang

为了方便,使用了现成的第三方工具 mesos-go

要做的工作相比第一种方式,第三步不再是配置Zk地址,而是配置Mesos的scheduler接口地址:

Url: "http://localhost:5050/api/v1/scheduler",
开发建议

看完上述内容,你们对什么是Mesos Framework开发有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 『高级篇』docker之服务编排了解Mesos(22)
  2. 如何利用Mesos构建多任务调度系统

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mesos framework

上一篇:Serverless与Flask框架结合如何进行Blog开发

下一篇:asp.net中LC.exe已退出代码为-1的原因有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》