成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

YARN:下一代 Hadoop計算平臺

大數(shù)據(jù) Hadoop
Apache Hadoop 是最流行的大數(shù)據(jù)處理工具之一。它多年來被許多公司成功部署在生產(chǎn)中。盡管 Hadoop 被視為可靠的、可擴展的、富有成本效益的解決方案,但大型開發(fā)人員社區(qū)仍在不斷改進它。

[[150760]]

Apache Hadoop 是最流行的大數(shù)據(jù)處理工具之一。它多年來被許多公司成功部署在生產(chǎn)中。盡管 Hadoop 被視為可靠的、可擴展的、富有成本效益的解決方案,但大型開發(fā)人員社區(qū)仍在不斷改進它。最終,2.0 版提供了多項革命性功能,其中包括 Yet Another Resource Negotiator (YARN)、HDFS Federation 和一個高度可用的 NameNode,它使得 Hadoop 集群更加高效、強大和可靠。在本文中,將對 YARN 與 Hadoop 中的分布式處理層的以前版本進行比較,了解 YARN 所帶來的優(yōu)勢。

簡介

Apache Hadoop 2.0 包含 YARN,它將資源管理和處理組件分開。基于 YARN 的架構(gòu)不受 MapReduce 約束。本文將介紹 YARN,以及它相對于 Hadoop 中以前的分布式處理層的一些優(yōu)勢。本文將了解如何使用 YARN 的可伸縮性、效率和靈活性增強您的集群。

Apache Hadoop 簡介

Apache Hadoop 是一個開源軟件框架,可安裝在一個商用機器集群中,使機器可彼此通信并協(xié)同工作,以高度分布式的方式共同存儲和處理大量數(shù)據(jù)。最初,Hadoop 包含以下兩個主要組件:Hadoop Distributed File System (HDFS) 和一個分布式計算引擎,該引擎支持以 MapReduce 作業(yè)的形式實現(xiàn)和運行程序。

MapReduce 是 Google 推廣的一個簡單的編程模型,它對以高度并行和可擴展的方式處理大數(shù)據(jù)集很有用。MapReduce 的靈感來源于函數(shù)式編程,用戶可將他們的計算表達為 map 和 reduce 函數(shù),將數(shù)據(jù)作為鍵值對來處理。Hadoop 提供了一個高級 API 來在各種語言中實現(xiàn)自定義的 map 和 reduce 函數(shù)。

Hadoop 還提供了軟件基礎(chǔ)架構(gòu),以一系列 map 和 reduce 任務(wù)的形式運行 MapReduce 作業(yè)。Map 任務(wù) 在輸入數(shù)據(jù)的子集上調(diào)用 map 函數(shù)。在完成這些調(diào)用后,reduce 任務(wù) 開始在 map 函數(shù)所生成的中間數(shù)據(jù)上調(diào)用 reduce 任務(wù),生成最終的輸出。 map 和 reduce 任務(wù)彼此單獨運行,這支持并行和容錯的計算。

最重要的是,Hadoop 基礎(chǔ)架構(gòu)負(fù)責(zé)處理分布式處理的所有復(fù)雜方面:并行化、調(diào)度、資源管理、機器間通信、軟件和硬件故障處理,等等。得益于這種干凈的抽象,實現(xiàn)處理數(shù)百(或者甚至數(shù)千)個機器上的數(shù) TB 數(shù)據(jù)的分布式應(yīng)用程序從未像現(xiàn)在這么容易過,甚至對于之前沒有使用分布式系統(tǒng)的經(jīng)驗的開發(fā)人員也是如此。

Hadoop 的黃金時代

盡管 MapReduce 模型存在著多種開源實現(xiàn),但 Hadoop MapReduce 很快就變得非常流行。Hadoop 也是全球最令人興奮的開源項目之一,它提供了多項出色的功能:高級 API、近線性的可伸縮性、開源許可、在商用硬件上運行的能力,以及容錯。它已獲得數(shù)百(或許已達數(shù)千)個公司的成功部署,是大規(guī)模分布式存儲和處理的最新標(biāo)準(zhǔn)。

一些早期的 Hadoop 采用者,比如 Yahoo! 和 Facebook,構(gòu)建了包含 4,000 個節(jié)點的大型集群,以滿足不斷增長和變化的數(shù)據(jù)處理需求。但是,在構(gòu)建自己的集群后,他們開始注意到了 Hadoop MapReduce 框架的一些局限性。

經(jīng)典 MapReduce 的局限性

經(jīng)典 MapReduce 的最嚴(yán)重的限制主要關(guān)系到可伸縮性、資源利用和對與 MapReduce 不同的工作負(fù)載的支持。在 MapReduce 框架中,作業(yè)執(zhí)行受兩種類型的進程控制:

一個稱為 JobTracker 的主要進程,它協(xié)調(diào)在集群上運行的所有作業(yè),分配要在 TaskTracker 上運行的 map 和 reduce 任務(wù)。

許多稱為 TaskTracker 的下級進程,它們運行分配的任務(wù)并定期向 JobTracker 報告進度。

Apache Hadoop 的經(jīng)典版本 (MRv1)

Apache Hadoop

該圖顯示了 Apache Hadoop 的經(jīng)典版本 (MRv1)

大型的 Hadoop 集群顯現(xiàn)出了由單個 JobTracker 導(dǎo)致的可伸縮性瓶頸。依據(jù) Yahoo!,在集群中有 5,000 個節(jié)點和 40,000 個任務(wù)同時運行時,這樣一種設(shè)計實際上就會受到限制。由于此限制,必須創(chuàng)建和維護更小的、功能更差的集群。

此外,較小和較大的 Hadoop 集群都從未最高效地使用他們的計算資源。在 Hadoop MapReduce 中,每個從屬節(jié)點上的計算資源由集群管理員分解為固定數(shù)量的 map 和 reduce slot,這些 slot 不可替代。設(shè)定 map slot 和 reduce slot 的數(shù)量后,節(jié)點在任何時刻都不能運行比 map slot 更多的 map 任務(wù),即使沒有 reduce 任務(wù)在運行。這影響了集群的利用率,因為在所有 map slot 都被使用(而且我們還需要更多)時,我們無法使用任何 reduce slot,即使它們可用,反之亦然。

最后但同樣重要的是,Hadoop 設(shè)計為僅運行 MapReduce 作業(yè)。隨著替代性的編程模型(比如 Apache Giraph 所提供的圖形處理)的到來,除 MapReduce 外,越來越需要為可通過高效的、公平的方式在同一個集群上運行并共享資源的其他編程模型提供支持。

2010 年,Yahoo! 的工程師開始研究一種全新的 Hadoop 架構(gòu),用這種架構(gòu)來解決上述所有限制并增加多種附加功能。

解決可伸縮性問題

在 Hadoop MapReduce 中,JobTracker 具有兩種不同的職責(zé):

  • 管理集群中的計算資源,這涉及到維護活動節(jié)點列表、可用和占用的 map 和 reduce slots 列表,以及依據(jù)所選的調(diào)度策略將可用 slots 分配給合適的作業(yè)和任務(wù)
  • 協(xié)調(diào)在集群上運行的所有任務(wù),這涉及到指導(dǎo) TaskTracker 啟動 map 和 reduce 任務(wù),監(jiān)視任務(wù)的執(zhí)行,重新啟動失敗的任務(wù),推測性地運行緩慢的任務(wù),計算作業(yè)計數(shù)器值的總和,等等

為單個進程安排大量職責(zé)會導(dǎo)致重大的可伸縮性問題,尤其是在較大的集群上,JobTracker 必須不斷跟蹤數(shù)千個 TaskTracker、數(shù)百個作業(yè),以及數(shù)萬個 map 和 reduce 任務(wù)。下圖演示了這一問題。相反,TaskTracker 通常近運行十來個任務(wù),這些任務(wù)由勤勉的 JobTracker 分配給它們。

大型 Apache Hadoop 集群 (MRv1) 上繁忙的 JobTracker

Apache Hadoop

該圖顯示了大型 Apache Hadoop 集群 (MRv1) 上繁忙的 JobTracker

為了解決可伸縮性問題,一個簡單而又絕妙的想法應(yīng)運而生:我們減少了單個 JobTracker 的職責(zé),將部分職責(zé)委派給 TaskTracker,因為集群中有許多 TaskTracker。在新設(shè)計中,這個概念通過將 JobTracker 的雙重職責(zé)(集群資源管理和任務(wù)協(xié)調(diào))分開為兩種不同類型的進程來反映。

不再擁有單個 JobTracker,一種新方法引入了一個集群管理器,它惟一的職責(zé)就是跟蹤集群中的活動節(jié)點和可用資源,并將它們分配給任務(wù)。對于提交給集群的每個作業(yè),會啟動一個專用的、短暫的 JobTracker 來控制該作業(yè)中的任務(wù)的執(zhí)行。有趣的是,短暫的 JobTracker 由在從屬節(jié)點上運行的 TaskTracker 啟動。因此,作業(yè)的生命周期的協(xié)調(diào)工作分散在集群中所有可用的機器上。得益于這種行為,更多工作可并行運行,可伸縮性得到了顯著提高。

ARN:下一代 Hadoop 計算平臺

我們現(xiàn)在稍微改變一下用辭。以下名稱的改動有助于更好地了解 YARN 的設(shè)計:

  • ResourceManager 代替集群管理器
  • ApplicationMaster 代替一個專用且短暫的 JobTracker
  • NodeManager 代替 TaskTracker
  • 一個分布式應(yīng)用程序代替一個 MapReduce 作業(yè)

YARN 是下一代 Hadoop 計算平臺,如下所示。

 

Apache Hadoop

該圖顯示了 YARN 的架構(gòu)

在 YARN 架構(gòu)中,一個全局 ResourceManager 以主要后臺進程的形式運行,它通常在專用機器上運行,在各種競爭的應(yīng)用程序之間仲裁可用的集群資源。ResourceManager 會追蹤集群中有多少可用的活動節(jié)點和資源,協(xié)調(diào)用戶提交的哪些應(yīng)用程序應(yīng)該在何時獲取這些資源。ResourceManager 是惟一擁有此信息的進程,所以它可通過某種共享的、安全的、多租戶的方式制定分配(或者調(diào)度)決策(例如,依據(jù)應(yīng)用程序優(yōu)先級、隊列容量、ACLs、數(shù)據(jù)位置等)。

在用戶提交一個應(yīng)用程序時,一個稱為 ApplicationMaster 的輕量型進程實例會啟動來協(xié)調(diào)應(yīng)用程序內(nèi)的所有任務(wù)的執(zhí)行。這包括監(jiān)視任務(wù),重新啟動失敗的任務(wù),推測性地運行緩慢的任務(wù),以及計算應(yīng)用程序計數(shù)器值的總和。這些職責(zé)以前分配給所有作業(yè)的單個 JobTracker。ApplicationMaster 和屬于它的應(yīng)用程序的任務(wù),在受 NodeManager 控制的資源容器中運行。

NodeManager 是 TaskTracker 的一種更加普通和高效的版本。沒有固定數(shù)量的 map 和 reduce slots,NodeManager 擁有許多動態(tài)創(chuàng)建的資源容器。容器的大小取決于它所包含的資源量,比如內(nèi)存、CPU、磁盤和網(wǎng)絡(luò) IO。目前,僅支持內(nèi)存和 CPU (YARN-3)。未來可使用 cgroups 來控制磁盤和網(wǎng)絡(luò) IO。一個節(jié)點上的容器數(shù)量,由配置參數(shù)與專用于從屬后臺進程和操作系統(tǒng)的資源以外的節(jié)點資源總量(比如總 CPU 數(shù)和總內(nèi)存)共同決定。

有趣的是,ApplicationMaster 可在容器內(nèi)運行任何類型的任務(wù)。例如,MapReduce ApplicationMaster 請求一個容器來啟動 map 或 reduce 任務(wù),而 Giraph ApplicationMaster 請求一個容器來運行 Giraph 任務(wù)。您還可以實現(xiàn)一個自定義的 ApplicationMaster 來運行特定的任務(wù),進而發(fā)明出一種全新的分布式應(yīng)用程序框架,改變大數(shù)據(jù)世界的格局。您可以查閱 Apache Twill,它旨在簡化 YARN 之上的分布式應(yīng)用程序的編寫。

在 YARN 中,MapReduce 降級為一個分布式應(yīng)用程序的一個角色(但仍是一個非常流行且有用的角色),現(xiàn)在稱為 MRv2。MRv2 是經(jīng)典 MapReduce 引擎(現(xiàn)在稱為 MRv1)的重現(xiàn),運行在 YARN 之上。

一個可運行任何分布式應(yīng)用程序的集群

ResourceManager、NodeManager 和容器都不關(guān)心應(yīng)用程序或任務(wù)的類型。所有特定于應(yīng)用程序框架的代碼都轉(zhuǎn)移到它的 ApplicationMaster,以便任何分布式框架都可以受 YARN 支持 — 只要有人為它實現(xiàn)了相應(yīng)的 ApplicationMaster。

得益于這個一般性的方法,Hadoop YARN 集群運行許多不同工作負(fù)載的夢想才得以實現(xiàn)。想像一下:您數(shù)據(jù)中心中的一個 Hadoop 集群可運行 MapReduce、Giraph、Storm、Spark、Tez/Impala、MPI 等。

單一集群方法明顯提供了大量優(yōu)勢,其中包括:

  • 更高的集群利用率,一個框架未使用的資源可由另一個框架使用
  • 更低的操作成本,因為只有一個 “包辦一切的” 集群需要管理和調(diào)節(jié)
  • 更少的數(shù)據(jù)移動,無需在 Hadoop YARN 與在不同機器集群上運行的系統(tǒng)之間移動數(shù)據(jù)

管理單個集群還會得到一個更環(huán)保的數(shù)據(jù)處理解決方案。使用的數(shù)據(jù)中心空間更少,浪費的硅片更少,使用的電源更少,排放的碳更少,這只是因為我們在更小但更高效的 Hadoop 集群上運行同樣的計算。

YARN 中的應(yīng)用程序提交

本節(jié)討論在應(yīng)用程序提交到 YARN 集群時,ResourceManager、ApplicationMaster、NodeManagers 和容器如何相互交互。下圖顯示了一個例子。

YARN 中的應(yīng)用程序提交

Apache Hadoop

假設(shè)用戶采用與 MRv1 中相同的方式鍵入 hadoop jar 命令,將應(yīng)用程序提交到 ResourceManager。ResourceManager 維護在集群上運行的應(yīng)用程序列表,以及每個活動的 NodeManager 上的可用資源列表。ResourceManager 需要確定哪個應(yīng)用程序接下來應(yīng)該獲得一部分集群資源。該決策受到許多限制,比如隊列容量、ACL 和公平性。ResourceManager 使用一個可插拔的 Scheduler。Scheduler 僅執(zhí)行調(diào)度;它管理誰在何時獲取集群資源(以容器的形式),但不會對應(yīng)用程序內(nèi)的任務(wù)執(zhí)行任何監(jiān)視,所以它不會嘗試重新啟動失敗的任務(wù)。

在 ResourceManager 接受一個新應(yīng)用程序提交時,Scheduler 制定的第一個決策是選擇將用來運行 ApplicationMaster 的容器。在 ApplicationMaster 啟動后,它將負(fù)責(zé)此應(yīng)用程序的整個生命周期。首先也是最重要的是,它將資源請求發(fā)送到 ResourceManager,請求運行應(yīng)用程序的任務(wù)所需的容器。資源請求是對一些容器的請求,用以滿足一些資源需求,比如:

  • 一定量的資源,目前使用 MB 內(nèi)存和 CPU 份額來表示
  • 一個首選的位置,由主機名、機架名稱指定,或者使用 * 來表示沒有偏好
  • 此應(yīng)用程序中的一個優(yōu)先級,而不是跨多個應(yīng)用程序

如果可能的話,ResourceManager 會分配一個滿足 ApplicationMaster 在資源請求中所請求的需求的容器(表達為容器 ID 和主機名)。該容器允許應(yīng)用程序使用特定主機上給定的資源量。分配一個容器后,ApplicationMaster 會要求 NodeManager(管理分配容器的主機)使用這些資源來啟動一個特定于應(yīng)用程序的任務(wù)。此任務(wù)可以是在任何框架中編寫的任何進程(比如一個 MapReduce 任務(wù)或一個 Giraph 任務(wù))。NodeManager 不會監(jiān)視任務(wù);它僅監(jiān)視容器中的資源使用情況,舉例而言,如果一個容器消耗的內(nèi)存比最初分配的更多,它會結(jié)束該容器。

ApplicationMaster 會竭盡全力協(xié)調(diào)容器,啟動所有需要的任務(wù)來完成它的應(yīng)用程序。它還監(jiān)視應(yīng)用程序及其任務(wù)的進度,在新請求的容器中重新啟動失敗的任務(wù),以及向提交應(yīng)用程序的客戶端報告進度。應(yīng)用程序完成后,ApplicationMaster 會關(guān)閉自己并釋放自己的容器。

盡管 ResourceManager 不會對應(yīng)用程序內(nèi)的任務(wù)執(zhí)行任何監(jiān)視,但它會檢查 ApplicationMaster 的健康狀況。如果 ApplicationMaster 失敗,ResourceManager 可在一個新容器中重新啟動它。您可以認(rèn)為 ResourceManager 負(fù)責(zé)管理 ApplicationMaster,而 ApplicationMasters 負(fù)責(zé)管理任務(wù)。

有趣的事實和特性

YARN 提供了多種其他的優(yōu)秀特性。介紹所有這些特性不屬于本文的范疇,我僅列出一些值得注意的特性:

  • 如果作業(yè)足夠小,Uberization 支持在 ApplicationMaster 的 JVM 中運行一個 MapReduce 作業(yè)的所有任務(wù)。這樣,您就可避免從 ResourceManager 請求容器以及要求 NodeManagers 啟動(可能很小的)任務(wù)的開銷。
  • 與為 MRv1 編寫的 MapReduce 作業(yè)的二進制或源代碼兼容性 (MAPREDUCE-5108)。
  • 針對 ResourceManager 的高可用性 (YARN-149)。此工作正在進行中,已由一些供應(yīng)商完成。
  • 重新啟動 ResourceManager 后的應(yīng)用程序恢復(fù) (YARN-128)。ResourceManager 將正在運行的應(yīng)用程序和已完成的任務(wù)的信息存儲在 HDFS 中。如果 ResourceManager 重新啟動,它會重新創(chuàng)建應(yīng)用程序的狀態(tài),僅重新運行不完整的任務(wù)。此工作已接近完成,社區(qū)正在積極測試。它已由一些供應(yīng)商完成。
  • 簡化的用戶日志管理和訪問。應(yīng)用程序生成的日志不會留在各個從屬節(jié)點上(像 MRv1 一樣),而轉(zhuǎn)移到一個中央存儲區(qū),比如 HDFS。在以后,它們可用于調(diào)試用途,或者用于歷史分析來發(fā)現(xiàn)性能問題。
  • Web 界面的新外觀。

結(jié)束語

YARN 是一個完全重寫的 Hadoop 集群架構(gòu)。它似乎在商用機器集群上實現(xiàn)和執(zhí)行分布式應(yīng)用程序的方式上帶來了變革。

與第一版 Hadoop 中經(jīng)典的 MapReduce 引擎相比,YARN 在可伸縮性、效率和靈活性上提供了明顯的優(yōu)勢。小型和大型 Hadoop 集群都從 YARN 中受益匪淺。對于最終用戶(開發(fā)人員,而不是管理員),這些更改幾乎是不可見的,因為可以使用相同的 MapReduce API 和 CLI 運行未經(jīng)修改的 MapReduce 作業(yè)。

沒有理由不將 MRv1 遷移到 YARN。最大型的 Hadoop 供應(yīng)商都同意這一點,而且為 Hadoop YARN 的運行提供了廣泛的支持。如今,YARN 已被許多公司成功應(yīng)用在生產(chǎn)中,比如 Yahoo!、eBay、Spotify、Xing、Allegro 等。

責(zé)任編輯:李英杰 來源: 36大數(shù)據(jù)
相關(guān)推薦

2013-07-27 21:28:44

2020-09-27 17:27:58

邊緣計算云計算技術(shù)

2020-09-16 10:28:54

邊緣計算云計算數(shù)據(jù)中心

2013-05-21 13:04:45

云計算網(wǎng)絡(luò)融合

2023-04-28 10:02:50

2024-02-26 14:46:53

移動計算人工智能5G

2011-12-06 09:48:57

惠普Automomy

2013-06-27 11:21:17

2016-06-14 13:25:12

Hadoop大數(shù)據(jù)開源

2015-12-03 17:38:18

云桌面

2013-07-22 09:47:17

大數(shù)據(jù)IBM技術(shù)大會

2025-01-03 09:24:10

模型架構(gòu)論文

2012-05-14 09:39:19

思杰

2016-01-26 11:58:12

2013-09-09 16:28:36

2018-09-25 07:00:50

2018-09-27 18:47:45

AIOpsDevOps

2013-07-27 21:41:14

APT攻擊下一代威脅

2009-04-06 08:42:18

Firefox瀏覽器

2022-07-06 11:38:40

人工智能AI
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美国产日韩成人 | 又黑又粗又长的欧美一区 | 欧美日韩在线免费 | 国产精品美女久久久久久免费 | 成人在线日韩 | 国产乱码精品一区二区三区忘忧草 | 毛片免费观看视频 | 国产精品一区二区三 | 亚洲国产免费 | 亚洲网站在线 | www.久久| 国产伦精品一区二区三区四区视频 | 日韩欧美国产成人一区二区 | 蜜桃色网 | 欧美日韩一卡 | 欧美综合在线视频 | 久久久免费少妇高潮毛片 | 91精品导航| 国产亚洲欧美在线视频 | 羞羞视频网站免费观看 | 中文字幕一区在线观看视频 | 国产精品成人69xxx免费视频 | 一区二区三区高清在线观看 | 69av片| 国产精品成人一区二区三区 | 午夜在线影院 | 精品一区二区观看 | 国产成人99久久亚洲综合精品 | 伦理午夜电影免费观看 | 中文字幕av网址 | 久久国 | 欧美成年黄网站色视频 | 精品一区二区观看 | 亚洲欧美一区在线 | av网址在线 | 天天拍天天插 | 欧美日韩免费一区二区三区 | 一区二区三区免费看 | 美女视频一区二区三区 | 国产精品久久久久久久久久免费看 | 日韩综合在线 |