用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.pswp.cn/news/395590.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395590.shtml
英文地址,請注明出處:http://en.pswp.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…