Mesos初步尝试

Posted McKay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mesos初步尝试相关的知识,希望对你有一定的参考价值。

记得几年前,用.net做分布式批处理的时候环境搭建很麻烦,虽然参数的分片算法、配置都搞定了,但是.net虚拟机的环境建立是个头疼的事:

  1. 节点要自己手工建
  2. 环境变量没法从前往后传递
  3. 批处理程序改动后的分发麻烦
  4. 批处理程序的状态需要自己写代码通知前端系统
  5. 日志查看麻烦

现在讲讲基于Mesos怎么做
由于.net的历史原因,mesos没有为.net封装wrapper(java/python都有,连js都有,唯独没有.net的),正要放弃时,看到有HTTP接口,就用它了,下面介绍几个重要命令:

  1. SUBSCRIBE,这个是基于HTTP的事件监听订阅,mesos有什么消息过来的话都是通过这个接口过来的(Scheduler必须一直和mesos保持连接,针对这个命令,mesos会源源不断的发送消息到scheduler)
  2. OFFERS,这个是mesos发来的消息类型之一,代表说mesos现在有多少多少资源(cpu, memory, disk)等等,问我们自制的Scheduler要不要资源,要的话Scheduler需要回复ACCEPT,不要的话回复DECLINE来拒绝资源
  3. ACCEPT,这个命令需要带上需要的资源、命令、运行在哪个mesos-agent上,这里的命令最简单的就是shell命令,比如: echo ‘hello‘,也可以是sleep 100, 当然也可以是dotnet命令
  4. DECLINE,没有仔细研究过,得看官方文档


基本的命令就是上面这几个了。

demo大家可以看看这个。https://github.com/daibinhua888/MesosFramework

展望:能做很复杂的资源伸缩,比如做微服务管理平台、消息队列的复杂队列资源申请、分布式批处理系统
遗憾:无法申请资源,有REQUEST方法,但是默认全部忽略,除非自己编写allocator

以上是关于Mesos初步尝试的主要内容,如果未能解决你的问题,请参考以下文章

使用 mesos 的火花集群

经验 | Mesos在Qunar的应用

配置在 mesosphere DCOS 上运行的 prometheus mesos-exporter

Mesos 1.7.0发布-在性能容器化和多框架运行方面有重大提升!

去哪儿网利用Mesos和Docker构建dev—beta环境

Mesos 上的 Hadoop 因“无法找到或加载主类 org.apache.hadoop.mapred.MesosExecutor”而失败