摘要:是一個(gè)集群管理器,提供了有效的跨分布式應(yīng)用或框架的資源隔離和共享,可以運(yùn)行。更貼近于層,而在之上。所以有人稱其為,或者分布式操作系統(tǒng)。你在這里可以看到使用的列表和有什么關(guān)聯(lián)嗎是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,而是一個(gè)分布式應(yīng)用。
聽(tīng)過(guò)不少人在討論 Mesos,然而并不是很明白 Mesos 到底能夠解決什么問(wèn)題,使用場(chǎng)景是怎樣的,周偉濤(國(guó)內(nèi)較早一批接觸使用 Docker,Mesos 等技術(shù)的開(kāi)發(fā)者)用一句話形容它, Mesos 能夠管理每臺(tái)機(jī)器的 CPU,內(nèi)存等資源,讓你像操縱單個(gè)資源池一樣來(lái)操縱整個(gè)數(shù)據(jù)中心。
周偉濤,現(xiàn)數(shù)人科技(主要產(chǎn)品數(shù)人云,基于 Mesos 和 Docker 技術(shù)的云操作系統(tǒng))云平臺(tái)負(fù)責(zé)人,曾就職于國(guó)際開(kāi)源解決方案供應(yīng)商 Red Hat, 紅帽認(rèn)證工程師, Mesos Contributor,高級(jí) Python 開(kāi)發(fā)工程師。 是國(guó)內(nèi)較早一批接觸使用Docker,Mesos 等技術(shù)的開(kāi)發(fā)者。
Apache Mesos 是一個(gè)集群管理器,提供了有效的、跨分布式應(yīng)用或框架的資源隔離和共享,可以運(yùn)行 Hadoop、MPI、Hypertable、Spark。
13 個(gè)問(wèn)題帶你深入了解 Mesos(問(wèn)答來(lái)自 OSChina 開(kāi)源中國(guó)社區(qū)第 100 期高手問(wèn)答 —— Apache Mesos)
Q1:對(duì)大多數(shù)人來(lái)說(shuō)還不知道什么是 Mesos,請(qǐng)介紹下他是干什么的,有什么用,怎么用?
A1:你好, Mesos 在國(guó)內(nèi)的資料目前雖然不多,但是你隨便百度,谷歌一下,還是有一些的。這里我想拿一個(gè)例子來(lái)解釋 Mesos,假設(shè)某公司需要頻繁進(jìn)行大數(shù)據(jù)計(jì)算,該任務(wù)運(yùn)行時(shí)需要 N 多 CPU 和內(nèi)存,為了滿足這個(gè)需求,我們有兩種思路:
思路一)使用小型機(jī),單機(jī)即可為任務(wù)提供足夠 的資源;
思路二)分布式計(jì)算,即提供一批普通配置的機(jī)器(計(jì)算節(jié)點(diǎn)),也就是集群,將計(jì)算任務(wù)拆分到各機(jī)器上計(jì)算,然后匯總結(jié)果。
思路二是當(dāng)前正在流行的做法,這種方式的優(yōu)點(diǎn)不再多說(shuō)。為了達(dá)到思路二的要求,我們需要建立數(shù)據(jù)中心(集群)。進(jìn)一步,為了充分利用數(shù)據(jù)中心(集群)的資源(譬如為不同的任務(wù)分配不同資源,按任務(wù)優(yōu)先級(jí)分配資源等),我們就需要一個(gè)工具來(lái)進(jìn)行整個(gè)數(shù)據(jù)中心資源的管理、分配等, 這個(gè)工具就是 Mesos。 與 Mesos 類似的工具還有 YARN.
除此之外, Mesos 不僅為計(jì)算任務(wù) Offer 資源, 它也支持運(yùn)行長(zhǎng)時(shí)任務(wù)(譬如 Web應(yīng)用)。目前國(guó)外好多互聯(lián)網(wǎng)公司都在使用 Mesos 來(lái)作為它們的集群管理工具,這里是一個(gè) Powered by Mesos list: https://mesos.apache.org/documentation/latest/powered-by-mesos/
Q2:我們現(xiàn)在用 Cloudera 這套,能簡(jiǎn)單介紹下 Mesos 和 Cloudera 的差別嗎?
A2:Mesos 的主要目標(biāo)就是去幫助管理不同框架(或者應(yīng)用棧)間的集群資源。比如說(shuō),有一個(gè)業(yè)務(wù)需要在同一個(gè)物理集群上同時(shí)運(yùn)行Hadoop,Storm及 Spark。這種情況下,現(xiàn)有的調(diào)度器是無(wú)法完成跨框架間的如此細(xì)粒度的資源共享的。Hadoop 的 YARN 調(diào)度器是一個(gè)中央調(diào)度器,它可以允許多個(gè)框架 運(yùn)行在一個(gè)集群里。
但是,要使用框架特定的算法或者調(diào)度策略的話就變得很難了,因?yàn)槎鄠€(gè)框架間只有一種調(diào)度算法。比如說(shuō),MPI 使用的是組調(diào)度算法,而 Spark 用的是延遲調(diào)度。它們兩個(gè)同時(shí)運(yùn)行在一個(gè)集群上會(huì)導(dǎo)致供求關(guān)系的沖突。還有一個(gè)辦法就是將集群物理拆分成多個(gè)小的集群,然后將不同的框架獨(dú)立地 運(yùn)行在這些小集群上。再有一個(gè)方法就是為每個(gè)框架分配一組虛擬機(jī)。正如Regola 和 Ducom 所說(shuō)的,虛擬化被認(rèn)為是一個(gè)性能瓶頸,尤其是在高性能計(jì)算 (HPC)系統(tǒng)中。這正是 Mesos 適合的場(chǎng)景——它允許用戶跨框架來(lái)管理集群資源。
Mesos 是一個(gè)雙層調(diào)度器。在第一層中,Mesos 將一定的資源提供(以容器的形式)給對(duì)應(yīng)的框架。框架在第二層接收到資源后,會(huì)運(yùn)行自己的調(diào)度算法來(lái) 將任務(wù)分配到 Mesos 所提供的這些資源上。和 Hadoop YARN 的這種中央調(diào)度器相比,或許它在集群資源使用方面并不是那么高效。但是它帶來(lái)了靈活性——比如說(shuō),多個(gè)框架實(shí)例可以運(yùn)行在一個(gè)集群里。這是現(xiàn)有的這些調(diào)度器都無(wú)法實(shí)現(xiàn)的。就算是 Hadoop YARN 也只是盡量爭(zhēng)取在同一個(gè)集群上支持類似 MPI 這樣的第三方框架而已。更重要的是,隨著新框架的誕生,比如說(shuō) Samza 最近就被 LinkedIn 開(kāi)源出來(lái)了——有了 Mesos 這些新框架可以試驗(yàn)性地部署到現(xiàn)有的集群上,和其它的框架和平共處。
Q3:您好,Mesos 有哪些典型的應(yīng)用場(chǎng)景?看了一些介紹,說(shuō)是能做 Docker 的編排服務(wù)。與 OpenStack 這樣的云平臺(tái)管理物理機(jī) CPU、內(nèi)存,Cloudera Manager 管理 Hadoop 集群服務(wù)有什么區(qū)別?
A3:現(xiàn)在 Mesos 的應(yīng)用場(chǎng)景非常多,譬如
1)Spark on Mesos (這是標(biāo)配 )
2)Jenkins on Mesos
3)Mesos 做 docker 的編排服務(wù)等。
與 OpenStack 相比, 首先,物理機(jī),虛擬機(jī)都可以作為 Mesos 的集群節(jié)點(diǎn);其次, 粒度不同, Mesos 的基本計(jì)算單元是容器(LXC) , 而 OpenStack 的是 VM(聽(tīng)說(shuō)現(xiàn)在也支持Docker 容器技術(shù)了),前者資源利用率更高;最后,輕量級(jí),Mesos 只負(fù)責(zé) Offer 資源給Framework,不負(fù)責(zé)調(diào)度資源。 OpenStack 更貼近于 IaaS 層,而 Mesos 在 IaaS 之上。所以有人稱其為 DCOS,或者分布式操作系統(tǒng)。
Q4:各方面邊界在哪,有什么優(yōu)劣勢(shì),謝謝。
A4:優(yōu)點(diǎn)
資源管理策略 Dominant Resource Fairness(DRF), 這是 Mesos 的核心,也是我們把Mesos 比作分布式系統(tǒng) Kernel 的根本原因。通俗講,Mesos 能夠保證集群內(nèi)的所有用戶有平等的機(jī)會(huì)使用集群內(nèi)的資源,這里的資源包括 CPU,內(nèi)存,磁盤(pán)等等。很多人拿 Mesos跟 k8s 相比,我對(duì) k8s 了解不深,但是,我認(rèn)為這兩者側(cè)重點(diǎn)不同不能做比較,k8s 只是負(fù)責(zé)容器編排而不是集群資源管理。不能因?yàn)槎伎梢怨芾?Docker,我們就把它們混為一談。
輕量級(jí)。相對(duì)于 YARN,Mesos只負(fù)責(zé) Offer 資源給 Framework,不負(fù)責(zé)調(diào)度資源。這樣,理論上,我們可以讓各種東西使用 Mesos 集群資源,而不像 YARN 只拘泥于 Hadoop,我們需要做的是開(kāi)發(fā)調(diào)度器(Mesos Framework)。
提高分布式集群的資源利用率:這是一個(gè) Generic 的優(yōu)點(diǎn)。從某些方面來(lái)說(shuō),所有的集群管理工具都是為了提高資源利用率。VM 的出現(xiàn),催生了 IaaS;容器的出現(xiàn),催生了 K8s, Mesos 等等。簡(jiǎn)單講,同樣多的資源,我們利用 IaaS 把它們拆成 VM 與 利用 K8s/Mesos 把它們拆成容器,顯然后者的資源利用率更高。(這里我沒(méi)有討論安全的問(wèn)題,我們假設(shè)內(nèi)部子網(wǎng)環(huán)境不需要考慮這個(gè)。)
缺點(diǎn)
門(mén)檻太高。只部署一套 Mesos,你啥都干不了,為了使用它,你需要不同的 Mesos Framework,像 Marathon,Chronos,Spark 等等?;蛘咦约簩?xiě) Framework 來(lái)調(diào)度 Mesos給的資源,這讓大家望而卻步。
目前對(duì) Stateful Service 的支持不夠。Mesos 集群目前無(wú)法進(jìn)行數(shù)據(jù)持久化。0.23 版本增加了 Persistent resource 和 Dynamic reserver,數(shù)據(jù)持久化問(wèn)題將得到改善。
臟活累活不會(huì)少。Team 在使用 Mesos 前期很樂(lè)觀,認(rèn)為搞定了 Mesos,我們的運(yùn)維同學(xué)能輕松很多。然而,根本不是那么回事兒,集群節(jié)點(diǎn)的優(yōu)化,磁盤(pán),網(wǎng)絡(luò)的設(shè)置,等等這些,Mesos 是不會(huì)幫你干的。使用初期,運(yùn)維的工作量不僅沒(méi)有減輕,反而更重了。Mesos 項(xiàng)目還在緊鑼密鼓的開(kāi)發(fā)中,很多功能還不完善。
Q5:我想請(qǐng)教下,如果要做一個(gè)云服務(wù)平臺(tái),Mesos 和 Kubernates 怎么去選型
A5:目前的現(xiàn)狀是 Mesos 和 K8s 的生態(tài)圈各自都發(fā)展的比較好,丟棄哪一個(gè)都很吃虧。不如按你個(gè)人的喜好,先選擇一個(gè)投下去先用起來(lái)。比如數(shù)人云 直接一鍵部署,這樣太方便了??梢钥焖袤w驗(yàn) Mesos 的好處。
這個(gè)要看你的具體需求。據(jù)我所知, K8s 目前只支持 Docker 而且鮮有生產(chǎn)環(huán)境的用例; 而 Mesos 不需要你的應(yīng)用包到 Docker 里面并且其經(jīng)歷過(guò)生產(chǎn)環(huán)境的考驗(yàn)。 但是, 反過(guò)來(lái), K8s 的社區(qū)更加活躍,其正在高速發(fā)展中,前景非常好。 當(dāng)然,上述都不是關(guān)鍵, 一個(gè)好用的云平臺(tái)更多的是要有好的產(chǎn)品理念。 請(qǐng)參考數(shù)人云
Q6:對(duì)于長(zhǎng)時(shí)間任務(wù),有沒(méi)有好的調(diào)度器算法或者策略
A6:長(zhǎng)任務(wù)是依靠馬拉松 Marathon 框架,對(duì)于 Docker,Mesos + Marathon 基本上是現(xiàn)在最成熟的分布式運(yùn)行框架。長(zhǎng)任務(wù)是依靠馬拉松 Marathon 框架,對(duì)于 Docker,Mesos + Marathon 基本上是現(xiàn)在最成熟的分布式運(yùn)行框架。
Q7:請(qǐng)問(wèn)下 Mesos 和 Docker 結(jié)合,Mesos 只是能解決資源分配問(wèn)題對(duì)么?
A7:對(duì)的,Mesos 負(fù)責(zé)資源分配,需要有個(gè)東東負(fù)責(zé) Docker 的任務(wù)調(diào)度,這樣就能將 Docker實(shí)例自動(dòng)下發(fā)到集群中運(yùn)行。這個(gè)組件叫馬拉松 Marathon。Mesos + Marathon 基本上現(xiàn)在最穩(wěn)定的 Docker 集群化調(diào)度框架
Q8:Mesos 現(xiàn)在可以逐漸應(yīng)用到生產(chǎn)環(huán)境了?
A8:Mesos 早就可以應(yīng)用到生產(chǎn)環(huán)境了, 國(guó)外的 Airbnb, Apple, Uber, Twitter,國(guó)內(nèi)的攜程,愛(ài)奇藝,還有我們公司數(shù)人科技都在生產(chǎn)環(huán)境使用了 Mesos。 你在這里可以看到使用 Mesos 的列表 https://mesos.apache.org/documentation/latest/powered-by-mesos/
Q9:Mesos 和 Zookeeper 有什么關(guān)聯(lián)嗎?
A9:Zookeeper 是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件, 而 Mesos 是一個(gè)分布式應(yīng)用。所以在生產(chǎn)環(huán)境,我們需要使用 Zookeeper 來(lái)為 Mesos 提供一致性服務(wù)。
Q10:Mesos,Swarm,Kubernetes 之間有沒(méi)有競(jìng)爭(zhēng)關(guān)系?雖然這三家都說(shuō)互相支持,但是這樣做會(huì)不會(huì)太啰嗦了?
A10:Swarm 與 K8s 有很多交叉。 Mesos 更多的是 Focus 在資源管理上, 只是恰好可以使用 Container 做資源隔離。競(jìng)爭(zhēng)與否,還需要看社區(qū)的走向吧。
Q11:你好,看了看這個(gè)框架想請(qǐng)教幾個(gè)問(wèn)題:
1.這個(gè)框架是否自帶日志搜集模塊?
2.這個(gè)框架能否進(jìn)行性能統(tǒng)計(jì)?
3.這個(gè)框架在某個(gè)節(jié)點(diǎn)資源耗盡時(shí)可否自動(dòng)切換?如果所有節(jié)點(diǎn)資源耗盡是否容易崩潰,自恢復(fù)能力如何?
4.這個(gè)框架可否配置負(fù)載均衡?
謝謝:)
A11:
帶日志模塊,但是功能比較簡(jiǎn)單,沒(méi)有一個(gè)全局的展示
可以進(jìn)行性能統(tǒng)計(jì)
Mesos 是根據(jù)當(dāng)前的集群資源統(tǒng)計(jì)來(lái)決定給調(diào)度器分配多少資源的,資源耗盡只會(huì)導(dǎo)致新的應(yīng)用無(wú)法部署,不會(huì)影響正在運(yùn)行的東西。
可以配置負(fù)載均衡。 并且 Mesos 本身也有多 Master 機(jī)制
Q12:請(qǐng)問(wèn) Mesos 怎樣決定分配多少資源?分配的資源什么時(shí)候回收?
A12:Mesos 與其它的集群管理工具不同, Mesos 本身不負(fù)責(zé)分配資源,它只是將當(dāng)前集群的剩余資源提供給注冊(cè)到它的調(diào)度器,由調(diào)度器本身來(lái)決定使用多少資源,以及合適釋放資源。
Q13:假設(shè)集群里有 3 臺(tái)服務(wù)器,每臺(tái)服務(wù)器可用內(nèi)存 16G,現(xiàn)在調(diào)度器要運(yùn)行一個(gè)任務(wù)需要24G 內(nèi)存,那么 Mesos 是把整個(gè)集群的 48G 內(nèi)存當(dāng)成一個(gè)整體來(lái)提供,還是會(huì)向調(diào)度器提供每臺(tái)服務(wù)器剩余的內(nèi)存,也就是說(shuō)下面兩種情況哪種才是正確的:
1. 調(diào)度器先申請(qǐng)節(jié)點(diǎn)1的 16G 內(nèi)存,再申請(qǐng)節(jié)點(diǎn) 2 的 8G 內(nèi)存,用哪個(gè)節(jié)點(diǎn)的內(nèi)存完全由調(diào)度器控制
2. 調(diào)度器一次過(guò)申請(qǐng) 24G 內(nèi)存,由 Mesos 控制具體是用了哪個(gè)節(jié)點(diǎn)的內(nèi)存。有可能是每個(gè)節(jié)點(diǎn)都分配了 8G;也有可能是一個(gè)節(jié)點(diǎn) 16G,另一個(gè)節(jié)點(diǎn) 8G
A13:看過(guò) DPark 實(shí)現(xiàn) Mesos 的調(diào)度器。你一個(gè)任務(wù)需要 24G 內(nèi)存,這個(gè)任務(wù)就需要拆分才可以調(diào)度起來(lái)。每個(gè)小任務(wù)需要 16G 以下的內(nèi)存。才能通過(guò)調(diào)度器,調(diào)度到具體服務(wù)器。 調(diào)度器一般都是把任務(wù)調(diào)度到文件所在的機(jī)器上。由調(diào)度器控制使用哪里的資源, Mesos 告訴調(diào)度器哪些資源可用。
閱讀完這 13 個(gè)問(wèn)答,希望可以讓你對(duì) Mesos 的認(rèn)識(shí)更深,并用于項(xiàng)目實(shí)踐,分享更多地經(jīng)驗(yàn)給 Mesos 愛(ài)好者:)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/11711.html
摘要:是一個(gè)集群管理器,提供了有效的跨分布式應(yīng)用或框架的資源隔離和共享,可以運(yùn)行。更貼近于層,而在之上。所以有人稱其為,或者分布式操作系統(tǒng)。你在這里可以看到使用的列表和有什么關(guān)聯(lián)嗎是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,而是一個(gè)分布式應(yīng)用。 showImg(https://segmentfault.com/img/bVrBZJ); 聽(tīng)過(guò)不少人在討論 Mesos,然而并不是很明白 Mesos ...
摘要:一個(gè)容器起來(lái),能夠?qū)ν夥?wù),這時(shí)就看下一步的負(fù)載均衡服務(wù)發(fā)現(xiàn)以及編排。它們有不同的應(yīng)用場(chǎng)景,比如傾向于四層的負(fù)載均衡。不單是負(fù)載均衡,它同時(shí)解決了服務(wù)發(fā)現(xiàn)和負(fù)載均衡兩個(gè)點(diǎn)。 今天是數(shù)人云容器三國(guó)演義Meetup嘉賓演講實(shí)錄第二彈。數(shù)人云工程師春明為大家奉送了一盤(pán)干貨的大餐,讓我們讀讀源碼,深入了解一下SwarmKit的世界吧! 小數(shù)前方預(yù)警:有大量代碼出現(xiàn)! showImg(htt...
摘要:然而在中國(guó)和美國(guó),不同的語(yǔ)言和文化共通的卻是對(duì)女工程師的偏見(jiàn)和挑戰(zhàn)。因?yàn)楣雀枋且患壹夹g(shù)驅(qū)動(dòng)的公司,所以我可以做很多決定。我認(rèn)為這是一個(gè)傳遞途徑的問(wèn)題,最起碼在美國(guó)是這樣。谷歌本身是很重視這一點(diǎn)的。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203525 Dawn Chen是谷歌云平臺(tái)軟件工程師,目前負(fù)責(zé)Kub...
摘要:然而在中國(guó)和美國(guó),不同的語(yǔ)言和文化共通的卻是對(duì)女工程師的偏見(jiàn)和挑戰(zhàn)。因?yàn)楣雀枋且患壹夹g(shù)驅(qū)動(dòng)的公司,所以我可以做很多決定。我認(rèn)為這是一個(gè)傳遞途徑的問(wèn)題,最起碼在美國(guó)是這樣。谷歌本身是很重視這一點(diǎn)的。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203525 Dawn Chen是谷歌云平臺(tái)軟件工程師,目前負(fù)責(zé)Kub...
摘要:然而在中國(guó)和美國(guó),不同的語(yǔ)言和文化共通的卻是對(duì)女工程師的偏見(jiàn)和挑戰(zhàn)。因?yàn)楣雀枋且患壹夹g(shù)驅(qū)動(dòng)的公司,所以我可以做很多決定。我認(rèn)為這是一個(gè)傳遞途徑的問(wèn)題,最起碼在美國(guó)是這樣。谷歌本身是很重視這一點(diǎn)的。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/203525 Dawn Chen是谷歌云平臺(tái)軟件工程師,目前負(fù)責(zé)Kub...
閱讀 659·2021-11-22 14:45
閱讀 3161·2021-10-15 09:41
閱讀 1710·2021-10-11 10:58
閱讀 2862·2021-09-04 16:45
閱讀 2681·2021-09-03 10:45
閱讀 3299·2019-08-30 15:53
閱讀 1273·2019-08-29 12:28
閱讀 2206·2019-08-29 12:14