NodeManager 管理一個(gè) YARN 集群中的每個(gè)節(jié)點(diǎn)。NodeManager 提供針對(duì)集群中每個(gè)節(jié)點(diǎn)的服務(wù),從監(jiān)督對(duì)一個(gè)容器的終生管理到監(jiān)視資源和跟蹤節(jié)點(diǎn)健康。MRv1 通過(guò)插槽管理 Map 和 Reduce 任務(wù)的執(zhí)行,而 NodeManager 管理抽象容器,這些容器代表著可供一個(gè)特定應(yīng)用程序使用的針對(duì)每個(gè)節(jié)點(diǎn)的資源。YARN 繼續(xù)使用 HDFS 層。它的主要 NameNode 用于元數(shù)據(jù)服務(wù),而 DataNode 用于分散在一個(gè)集群中的復(fù)制存儲(chǔ)服務(wù)。
要使用一個(gè) YARN 集群,首先需要來(lái)自包含一個(gè)應(yīng)用程序的客戶的請(qǐng)求。ResourceManager 協(xié)商一個(gè)容器的必要資源,啟動(dòng)一個(gè) ApplicationMaster 來(lái)表示已提交的應(yīng)用程序。通過(guò)使用一個(gè)資源請(qǐng)求協(xié)議,ApplicationMaster 協(xié)商每個(gè)節(jié)點(diǎn)上供應(yīng)用程序使用的資源容器。執(zhí)行應(yīng)用程序時(shí),ApplicationMaster 監(jiān)視容器直到完成。當(dāng)應(yīng)用程序完成時(shí),ApplicationMaster 從 ResourceManager 注銷其容器,執(zhí)行周期就完成了。
通過(guò)這些討論,應(yīng)該明確的一點(diǎn)是,舊的 Hadoop 架構(gòu)受到了 JobTracker 的高度約束,JobTracker 負(fù)責(zé)整個(gè)集群的資源管理和作業(yè)調(diào)度。新的 YARN 架構(gòu)打破了這種模型,允許一個(gè)新 ResourceManager 管理跨應(yīng)用程序的資源使用,ApplicationMaster 負(fù)責(zé)管理作業(yè)的執(zhí)行。這一更改消除了一處瓶頸,還改善了將 Hadoop 集群擴(kuò)展到比以前大得多的配置的能力。此外,不同于傳統(tǒng)的 MapReduce,YARN 允許使用 Message Passing Interface 等標(biāo)準(zhǔn)通信模式,同時(shí)執(zhí)行各種不同的編程模型,包括圖形處理、迭代式處理、機(jī)器學(xué)習(xí)和一般集群計(jì)算。
您需要知道的事
隨著 YARN 的出現(xiàn),您不再受到更簡(jiǎn)單的 MapReduce 開(kāi)發(fā)模式約束,而是可以創(chuàng)建更復(fù)雜的分布式應(yīng)用程序。實(shí)際上,您可以將 MapReduce 模型視為 YARN 架構(gòu)可運(yùn)行的一些應(yīng)用程序中的其中一個(gè),只是為自定義開(kāi)發(fā)公開(kāi)了基礎(chǔ)框架的更多功能。這種能力非常強(qiáng)大,因?yàn)?YARN 的使用模型幾乎沒(méi)有限制,不再需要與一個(gè)集群上可能存在的其他更復(fù)雜的分布式應(yīng)用程序框架相隔離,就像 MRv1 一樣。甚至可以說(shuō),隨著 YARN 變得更加健全,它有能力取代其他一些分布式處理框架,從而完全消除了專用于其他框架的資源開(kāi)銷,同時(shí)還簡(jiǎn)化了整個(gè)系統(tǒng)。
為了演示 YARN 相對(duì)于 MRv1 的效率提升,可考慮蠻力測(cè)試舊版本的 LAN Manager Hash 的并行問(wèn)題,這是舊版 Windows® 用于密碼散列運(yùn)算的典型方法。在此場(chǎng)景中,MapReduce 方法沒(méi)有多大意義,因?yàn)?Mapping/Reducing 階段涉及到太多開(kāi)銷。相反,更合理的方法是抽象化作業(yè)分配,以便每個(gè)容器擁有密碼搜索空間的一部分,在其之上進(jìn)行枚舉,并通知您是否找到了正確的密碼。這里的重點(diǎn)是,密碼將通過(guò)一個(gè)函數(shù)來(lái)動(dòng)態(tài)確定(這確實(shí)有點(diǎn)棘手),而不需要將所有可能性映射到一個(gè)數(shù)據(jù)結(jié)構(gòu)中,這就使得 MapReduce 風(fēng)格顯得不必要且不實(shí)用。
歸結(jié)而言,MRv1 框架下的問(wèn)題僅是需要一個(gè)關(guān)聯(lián)數(shù)組,而且這些問(wèn)題有專門朝大數(shù)據(jù)操作方向演變的傾向。但是,問(wèn)題一定不會(huì)永遠(yuǎn)僅局限于此范式中,因?yàn)槟F(xiàn)在可以更為簡(jiǎn)單地將它們抽象化,編寫自定義客戶端、應(yīng)用程序主程序,以及符合任何您想要的設(shè)計(jì)的應(yīng)用程序。