您好,登錄后才能下訂單哦!
這篇文章主要講解了“Mesos和YARN是怎么協(xié)同工作的”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Mesos和YARN是怎么協(xié)同工作的”吧!
Hadoop 2.0之后把對(duì)集群資源的管理從MapReduce v1的JobTracker中提取出來(lái),在YARN中進(jìn)行了實(shí)現(xiàn)。雖然YARN支持了多種不同的計(jì)算框架,但依舊沒(méi)有很好的解決集群資源的彈性伸縮問(wèn)題。本文介紹了一個(gè)新的項(xiàng)目- Myriad,它把YARN和Mesos兩者的優(yōu)勢(shì)結(jié)合起來(lái),不僅使YARN的運(yùn)行使用更加靈活,而且讓整個(gè)數(shù)據(jù)中心的擴(kuò)容變得更簡(jiǎn)單。
這是一個(gè)關(guān)于兩個(gè)集群的故事。第一個(gè)是Apache Hadoop集群,其中資源與Hadoop以及進(jìn)程完全隔離。另一個(gè)集群是對(duì)所有資源的描述,這些資源并不是Hadoop集群的一部分。通過(guò)這種方式來(lái)區(qū)分兩個(gè)集群是因?yàn)镠adoop通過(guò)Apache YARN(Yet Another Resource Negotiator)來(lái)管理自己的資源。對(duì)于Hadoop來(lái)說(shuō),在沒(méi)有大數(shù)據(jù)任務(wù)在隊(duì)列中時(shí),這些資源常常是未被充分使用的。當(dāng)一個(gè)大數(shù)據(jù)任務(wù)運(yùn)行時(shí),這些資源迅速被用到極限,并且在請(qǐng)求更多資源。這對(duì)于第一種Hadoop集群而言相當(dāng)困難。
圖1- 獨(dú)立集群- 來(lái)源:Mesosphere and MapR,侵刪.
盡管Hadoop有意打算消除數(shù)據(jù)壁壘,但是在拆去一些壁壘的同時(shí),其他類型的壁壘又在相同的地方產(chǎn)生。作為新的技術(shù)方案,Apache Mesos也有意消除這些壁壘。但Mesos常被用來(lái)管理“第二種集群”,這些集群包括除去Hadoop任務(wù)之外的所有資源。
前面介紹的關(guān)于Mesos和YARN的不同點(diǎn),這只是開(kāi)始。正如它們并不兼容,經(jīng)常互相競(jìng)爭(zhēng)。而我的故事,講的卻是它們協(xié)同工作。
Mesos和YARN之間的主要區(qū)別圍繞著優(yōu)先級(jí)的設(shè)計(jì)以及調(diào)度任務(wù)的方式。Mesos于2007年誕生于UC Berkeley并在Twitter和Airbnb等公司的商用下不斷被鞏固,它的設(shè)計(jì)初衷是作為整個(gè)數(shù)據(jù)中心的一個(gè)可拓展的全局資源管理器。YARN出于管理Hadoop規(guī)模的需求。在YARN出現(xiàn)之前,資源管理(功能)集成在Hadoop MapReduce V1架構(gòu)中,為了有助于MapReduce的擴(kuò)展而將其移除(轉(zhuǎn)移到Y(jié)ARN中實(shí)現(xiàn))。MapReduce的Job Tracker并不能在超過(guò)上千臺(tái)的機(jī)器中有效調(diào)度MapReduce任務(wù)。YARN在下一代Hadoop生命周期中被創(chuàng)造,主要圍繞著資源擴(kuò)縮。
Mesos決定了哪些資源可用,它把分配請(qǐng)求返回給一個(gè)應(yīng)用調(diào)度器(應(yīng)用調(diào)度器和執(zhí)行器被稱作“框架”)。這些分配請(qǐng)求被框架接受或者拒絕。這個(gè)模型被認(rèn)為是非單體模型,因?yàn)樗且粋€(gè)“兩級(jí)”調(diào)度器,調(diào)度算法是可拔插的。Mesos允許任何實(shí)現(xiàn)任何調(diào)度算法,每個(gè)算法都能根據(jù)自己的策略進(jìn)行接收或是拒絕分配請(qǐng)求,并且可以容納成千上萬(wàn)種調(diào)度程序以多租戶的方式運(yùn)行在同一個(gè)集群。
Mesos的兩級(jí)調(diào)度模型允許每個(gè)框架(自己)決定使用哪種算法來(lái)調(diào)度運(yùn)行的工作。Mesos扮演仲裁者,在多個(gè)調(diào)度器上來(lái)調(diào)度資源,解決沖突,并且確保資源基于業(yè)務(wù)策略被公平地分發(fā)。分配請(qǐng)求到來(lái)時(shí),框架會(huì)執(zhí)行任務(wù)來(lái)消費(fèi)那些提供的資源?;蛘呖蚣芸梢赃x擇拒絕請(qǐng)求并且等待下一個(gè)分配請(qǐng)求。這種模型與在一臺(tái)筆記本電腦或智能手機(jī)上如何同時(shí)運(yùn)行多個(gè)App十分類似,當(dāng)需要更多內(nèi)存時(shí)會(huì)創(chuàng)建新的線程或請(qǐng)求,操作系統(tǒng)來(lái)仲裁管理所有的請(qǐng)求。多年的操作系統(tǒng)和分布式系統(tǒng)的實(shí)踐發(fā)展證明,這種模型的好處在于它具有良好的擴(kuò)展性。它已被Google和Twitter證明。
現(xiàn)在,我們?cè)倏匆幌耏ARN。當(dāng)job請(qǐng)求到達(dá)YARN資源管理器,YARN評(píng)估所有可用的資源然后調(diào)度job。YARN以一種整體的方式,直接決定job運(yùn)行的位置。在MapReduce架構(gòu)演變的過(guò)程中,重申強(qiáng)調(diào)YARN的出現(xiàn)十分重要。在Hadoop任務(wù)的資源規(guī)模伸縮需求的驅(qū)動(dòng)下,YARN把資源管理的模型從MR的Job Tracker中獨(dú)立出來(lái),在Resources Manager組件中實(shí)現(xiàn)。
過(guò)去一貫的Hadoop任務(wù)是持續(xù)一段時(shí)間的批處理任務(wù),YARN為了調(diào)度新的Hadoop任務(wù)進(jìn)行了優(yōu)化。這意味著YARN既不是為長(zhǎng)時(shí)間運(yùn)行的服務(wù)而設(shè)計(jì),也不是為滿足短期交互/快速響應(yīng)式請(qǐng)求(像簡(jiǎn)短而快速的Spark任務(wù)),盡管它可能調(diào)度其他種類的工作負(fù)載,但這并不是一個(gè)理想的模型。MapReduce的資源需求、執(zhí)行模型和架構(gòu)需求不同于長(zhǎng)時(shí)間運(yùn)行的服務(wù),如Web服務(wù)器、SOA應(yīng)用程序或是像Spark和Storm那樣的實(shí)時(shí)任務(wù)。同時(shí),YARN針對(duì)調(diào)度無(wú)狀態(tài)的腳本任務(wù)設(shè)計(jì),這些任務(wù)失敗時(shí)可以任意重啟。 但它并不能處理像分布式文件系統(tǒng)或數(shù)據(jù)庫(kù)那樣的有狀態(tài)的服務(wù)。 然而YARN的集中式調(diào)度器,理論上可以處理不同類型的工作負(fù)載(通過(guò)把新的算法合并到調(diào)度代碼),對(duì)于支持日益復(fù)雜的調(diào)度算法,這并不是一個(gè)輕量級(jí)的模型。
在對(duì)比YARN和Mesos時(shí),理解通用的調(diào)度能力和為什么需要在他們之間做取舍十分重要。雖然有些人可能認(rèn)為YARN和Mesos大同小異,但并非如此。區(qū)別在于用戶一開(kāi)始使用時(shí)需求模型的不同。每種模型沒(méi)有明確地錯(cuò)誤,但每種方法會(huì)產(chǎn)出不同的長(zhǎng)期結(jié)果。我認(rèn)為這就是選擇如何使用它們的關(guān)鍵。Ben Hindman和Berkeley AMP實(shí)驗(yàn)室在設(shè)計(jì)Mesos時(shí),與Google設(shè)計(jì)Omega的團(tuán)隊(duì)同期進(jìn)行,Mesos系統(tǒng)得益于Google的Omega系統(tǒng)設(shè)計(jì)的經(jīng)驗(yàn),構(gòu)建了一個(gè)更好的非單體(兩階段)的調(diào)度器。
當(dāng)你把如何管理數(shù)據(jù)中心作為整體來(lái)評(píng)估時(shí),一方面使用Mesos來(lái)管理數(shù)據(jù)中心的所有資源,另一方面使用YARN來(lái)安全的管理Hadoop任務(wù),但它并不具有管理整個(gè)數(shù)據(jù)中心的能力。數(shù)據(jù)中心運(yùn)營(yíng)商傾向于把集群劃分為的不同區(qū)域(Hadoop集群和非Hadoop集群)來(lái)應(yīng)對(duì)這兩個(gè)場(chǎng)景。
在同一個(gè)數(shù)據(jù)中心使用Mesos和YARN,為了受益于資源管理器,目前需要?jiǎng)?chuàng)建兩個(gè)靜態(tài)分區(qū)。此時(shí)意味著當(dāng)指定資源被Hadoop的YARN管理時(shí),Mesos就無(wú)法起作用。這也許過(guò)于簡(jiǎn)化了,盡管這么做確實(shí)有效。但本質(zhì)上,我們是想避免這種情況。
這不禁讓我們發(fā)問(wèn):能否讓企業(yè)和數(shù)據(jù)中心受益于YARN和Mesos的協(xié)調(diào)工作?答案是肯定的。一些著名的公司——eBay、MapR和Mesosphere共同合作了一個(gè)項(xiàng)目叫做Myriad.
這個(gè)開(kāi)源軟件項(xiàng)目既是一個(gè)Mesos框架,又是一個(gè)YARN調(diào)度器,這就使得Mesos能夠管理YARN的資源請(qǐng)求。當(dāng)一個(gè)任務(wù)到達(dá)YARN時(shí),它會(huì)通過(guò)Myriad調(diào)度器調(diào)度它,使請(qǐng)求與Mesos提供的資源匹配。相應(yīng)的,Mesos也會(huì)將它傳遞給Mesos工作節(jié)點(diǎn)。之后,這個(gè)Mesos節(jié)點(diǎn)會(huì)把這個(gè)請(qǐng)求與一個(gè)正在執(zhí)行YARN節(jié)點(diǎn)的管理器的Myriad執(zhí)行器關(guān)聯(lián)。Myriad在Mesos資源啟動(dòng)YARN節(jié)點(diǎn)管理器,啟動(dòng)之后,Mesos資源會(huì)告訴YARN資源管理器哪些資源可用。這時(shí)YARN就可以隨意地使用這些資源。Myriad為Mesos的可用資源池和YARN的任務(wù)(需要用到Mesos中資源)之間架起了一座無(wú)縫連接的橋梁。
圖2- myriad如何工作? 來(lái)源:Mesosphere and MapR,侵刪.
這種做法的優(yōu)點(diǎn)是,它不僅讓你在共享的集群中彈性的使用YARN,使得YARN比最初設(shè)計(jì)時(shí)更具活力和彈性。而且,它使得數(shù)據(jù)中心的運(yùn)維團(tuán)隊(duì)在給YARN資源擴(kuò)容時(shí)無(wú)需重新配置YARN集群。整個(gè)數(shù)據(jù)中心的擴(kuò)容變得十分容易。該模型提供了一種簡(jiǎn)單的方式運(yùn)行和管理多個(gè)YARN的實(shí)現(xiàn),甚至在同一個(gè)集群上運(yùn)行多個(gè)不同版本的YARN。
圖3- 資源共享 來(lái)源:Mesosphere and MapR,侵刪.
Myriad把YARN和Mesos兩者的優(yōu)勢(shì)結(jié)合起來(lái)。通過(guò)使用Myriad項(xiàng)目,讓Mesos和YARN可以協(xié)作,你可以完成一個(gè)實(shí)時(shí)業(yè)務(wù)。數(shù)據(jù)分析可以在和運(yùn)行生產(chǎn)服務(wù)的相同硬件上執(zhí)行。你不再需要面臨由靜態(tài)分區(qū)引起的資源限制(和低利用率)。資源可以根據(jù)業(yè)務(wù)的需求彈性的伸縮。
感謝各位的閱讀,以上就是“Mesos和YARN是怎么協(xié)同工作的”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Mesos和YARN是怎么協(xié)同工作的這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。