用Mesos分布式架构进行工作

引言:2010年,一个旨在解决扩容问题的项目诞生——Apache Mesos,它在某种程度上对CPU、内存、磁盘资源进行抽象,从而允许整个数据中心如同单台大服务器般运转。无需虚拟机和操作系统,Mesos创造了一个单独底层的集群为应用提供所需资源。
本文将向您简单介绍Mesos分布式架构,详细讨论请见《Mesos 实战》一书。

  Mesos通过引入一层抽象,提供了一种像管理单台大服务器般的方法来管理整个数据中心。你可以认为Mesos与当今虚拟化解决方案类似:像hypervisor一样抽象物理CPU、内存、磁盘资源,之后以虚拟机形式呈现。Mesos做相同的事情,但其将资源直接提供给应用。
  除了提升整体资源的利用率外,Mesos还一开始就支持分布式、高可用及容错。通过使用容器技术,如Linux control groups (cgroups)和Docker,Mesos实现了进程间隔离,允许多个应用运行在同一机器上。你也许曾搭建过三个集群,分别运行着Memcached、Jenkins CI和Ruby on Rails应用,现在你只需部署一个Mesos集群就可以运行所有的应用了。
  为了提供规模化服务,Mesos提供了一套分布式、容错性架构来完成资源的细粒度分配。这套架构包括三个组件:master、slave及运行在其上的应用本身(通常称为framework)。Mesos依赖于Apache ZooKeeper,一个分布式的数据存储系统,专用于集群内的协调同步leader投票选举,以及Mesos master、slave和framework间的leader发现。
  在下图中,你能够看见这些架构组件如何在一起工作,从而提供一个稳定的平台来部署应用。
                图片描述
                Mesos架构图,包括一个或多个master、slave和framework

masters

  Mesos master的职责是管理集群中在每台机器上运行的Mesos slave守护进程。通过ZooKeeper和master之间协调哪个节点是主master,哪些节点作为备用存在,它们将在主master离线时接管服务。
  主master节点使用可插拔的分配模块或调度算法来分发资源供给至各种调度器,从而决定将什么资源提供给某一特定的framework。调度器依据其上是否有任务需要执行来决定接收或拒绝资源供给。
  Mesos集群至少要求有一个master节点。在生产环境为了保证高可用性,推荐采用三个甚至更多的master节点。你可以将ZooKeeper在与master相同的机器上运行,或者使用独立ZooKeeper集群。

slaves

  在集群中负责执行framework任务的服务器被称为Mesos slave节点,它们访问ZooKeeper来确定主master节点,将CPU、内存、存储资源以资源供给的形式宣告给主master。当调度器从主master接收资源供给后,在slave节点上启动一个或多个执行器,执行器负责运行framework的任务。
  Mesos slave也能够基于属性与资源进行配置,从而允许它们定制特定环境。属性配置是键值对形式,可以包含类似于节点所在机房位置信息。资源配置可以替代Mesos自动探测发现slave节点的有效资源,并由用户指定具体的CPU、内存、磁盘资源信息。属性配置与资源配置的示例信息如下:

--attributes='datacenter:pdx1;rack:1-1;os:rhel7'
--resources='cpu:24;mem:24576;disk:409600'

  在属性配置中对Mesos节点的数据中心、节点位置、操作系统进行了说明,在资源配置中用户指定了该节点提供的CPU、内存和磁盘资源。在日常维护中,这些信息对保证应用在线运行不受影响特别有用。使用这些配置信息,数据中心的运维人员可以在整个机柜甚至整排机柜离线日常维护时不影响用户。

frameworks

  framework是表示Mesos应用的术语,它负责在集群上调度与执行任务。framework由两个组件组成:调度器与执行器。

1 . 调度器

  调度器是典型的长运行态服务,负责与Mesos Master连接,接收或拒绝资源供给。Mesos将调度的职责委派给了framework,而不是试着由自己调度所有的任务执行。调度器基于当下是否有任务需要运行来决定是否接受或拒绝资源供给。调度器通过与ZooKeeper通信来探测主master的存在,之后将其自己注册到master中。

2 . 执行器

  执行器是在Mesos slave上启动的一个进程,负责运行framework的任务。在本书写作之时,Mesos内建的执行器允许framework执行shell脚本、Docker容器等。Mesos支持多种编程语言执行器,新的执行器可以与framework绑定在一起,当任务需要它时由Mesos slave从framework获取。
  如你所看到的,Mesos提供了一个分布式、高可用的架构,master负责整个集群的调度工作,slave将有效资源通知调度器,并在集群中执行任务。
  本文选自《Mesos 实战》,点此链接可在博文视点官网查看此书。
                      图片描述
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                         图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

angular和react_如何在Angular中验证默认和自定义React形式

angular和reactby Luuk GruijsLuuk Gruijs着 如何在Angular中验证默认和自定义React形式 (How to validate default and custom reactive forms in Angular) When presenting forms to your users, it’s considered very user-friendly to give them immediate feedback on w…

POJ 1502 MPI Maelstrom 最短路

最短路模板。 题意:从‘1’点发出一个信号到各个点,不同的点可以同时发出一个信号但到达目标的时间不同,问所有点接受到信号所耗费的最短时间为多少。 思路:迪杰斯特拉求出1点到各个点的最短路,遍历一遍找到其中的最大…

调试dump文件

调试dump文件 1、设置好pdb文件和源代码路径 为了能正确分析Dump文件,我们必须要指定和程序一起出来的PDB文件,如果程序重新被编译了一次,即使代码没有任何变化,之前的PDB文件我们不能再继续使用。posted on 2018-12-28 17:50 mao…

不一样的视角,程序员世界里的环保

摘要: 我们身边有很多可以做的技术环保工作。比如说,在Linux下少用root用户,SQL的时候,delete前先select,这样,你就不会做出一些让你后悔的事。不会让你重头来过,从而至少不会浪费电能。写代码的…

oracle查出连续5行,Oracle期末考试复习题2

复习题一、填空题:1. Oracle EnterpriseManager是一个基于 B/S的框架系统。2.Oracle数据库的存储结构分为物理结构和逻辑结构。3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。4. 在oracle中已c…

selinux会阻碍挂载嘛_为什么追求完美可能会阻碍您成为新手Web开发人员

selinux会阻碍挂载嘛by Rick West由里克韦斯特(Rick West) 为什么追求完美可能会阻碍您成为新手Web开发人员 (Why striving for perfection might be holding you back as a newbie web developer) I am a perfectionist. Or, at least, I like to think I am. Either way, I’…

MySQL优化的一些基础

在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个…

oracle 会话 lock,相克军_Oracle体系_随堂笔记014-锁 latch,lock

1、Oracle锁类型锁的作用latch锁:chain,链LOCK锁排他锁(X)共享锁(S)2、行级锁:DML语句事务锁TX锁的结构事务锁的加锁和解锁过程只有排他锁不影响读(CR块)3、表级锁:TM行级排他锁(Row exclusive)RX锁当我们进行DML时,会…

电线之间:采访Microsoft Edge性能PM Nolan Lawson

by Vivian Cromwell通过维维安克伦威尔(Vivian Cromwell) 电线之间:采访Microsoft Edge性能PM Nolan Lawson (Between the Wires: An interview with Microsoft Edge performance PM Nolan Lawson) I interviewed Nolan Lawson, Web Performance PM at Microsoft E…

swift菜鸟入门视频教程-09-类和结构体

本人自己录制的swift菜鸟入门,欢迎大家拍砖,有什么问题能够在这里留言。主要内容:类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为视频地址:百度…

oracle的集合操作符,[Oracle] Oracle的集合操作符

Oracle的集合操作包括: union , intersect , minus.[例子]假设有两个表a,b如下:SQL> select * from a;COLA----------123SQL> select * from b;COLB----------345union : 得到两个结果集的并集(不含重复值)SQL> select * from a2 union3 select * from b;COLA------…

锁大全与 GDB调试

1.innodb_lock_monitor:打开锁信息的方式 mysql> create table innodb_lock_monitor(id int) engineInnoDB; Query OK, 0 rows affected, 1 warning (2.29 sec) mysql> begin work; Query OK, 0 rows affected (0.00 sec) mysql> update t set val val 1…

[笔试面试题] 8-面向对象篇

面向对象篇 1 面向对象与面向过程的含义以及区别? 面向对象 面向对象是把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象。对同类对象抽象出其共性,即类,类中的大多数数据,只能被本类的方法…

管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...

管理员所有权代码Code ownership sucks.代码所有权糟透了。 It limits code and stunts your growth as a developer.它限制了代码并阻碍了您作为开发人员的成长。 Let’s look at what code ownership is and why it destroys individuals and organizations.让我们看看什么…

AngularJS 自定义控件

AngularJS Custom Directives 好讨厌不带日期的博客,而且说得好啰嗦 自定义指令介绍 AngularJS 指令作用是在 AngulaJS 应用中操作 Html 渲染。比如说,内插指令 ( {{ }} ), ng-repeat 指令以及 ng-if 指令。 当然你也可以实现自己的。这就是 AngularJS 所…

oracle 监听加密 tcps,通过oracle wallet配置listener tcps加密

一 配置客户端和服务端的wallet2端配置方法一致,相互添加证书orapki wallet create -wallet "/u01/oracle/wallet" -pwd Wdkf984jkkgekj434FKFD -auto_login_localorapki wallet add -wallet "/u01/oracle/wallet" -pwd Wdkf984jkkgekj434FKFD …

[财务知识] debt debit credit 的区别于联系

https://blog.csdn.net/sjpljr/article/details/70169303 剑桥词典解释分别为: Debt [C or U ] n.something, especially money, which is owed to someone else, or the state of owing something借款,欠款;债务He ran/got into debt ( borr…

SpringMVC视图解析器

SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视 图解析器。当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMVC的DispatcherServlet处理,接着 Spring会分析看…

TIOBE 10月编程语言排行榜 : GO 问鼎本年度语言 ?

距离2016年度编程语言的公布只剩3个月了,谁将夺得桂冠? 与去年同期相比,2016年只有Go语言和Groovy语言的增长率超过了1%。 需要注意的是,Groovy语言2015年以一个爆炸性增长的收尾,所以到2017年1月左右的增长速度可能不…

校友邮箱_freeCodeCamp校友网络:FCC校友的自主指导网络

校友邮箱by peterWeinberg彼得温伯格 freeCodeCamp校友网络:FCC校友的自主指导网络 (The freeCodeCamp Alumni Network: A homegrown mentorship network for FCC alumni) For the last year, I’ve been spending nearly all my free time learning to code. I’v…