搜尋

Yarn概述

Jun 07, 2016 pm 04:41 PM
hadoopyarn發展概述隨著

Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource Negotiator,可以翻译为“另一个资源管理器”。yarn取代了以前hadoop中jobtracker(后面简写JT)的角色,因为以前JT的任务过重,负责任务的调度、跟踪、失败重启等过程,而且只能运行mapred

Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource Negotiator,可以翻译为“另一个资源管理器”。yarn取代了以前hadoop中jobtracker(后面简写JT)的角色,因为以前JT的任务过重,负责任务的调度、跟踪、失败重启等过程,而且只能运行mapreduce作业,不支持其他编程模式,这也限制了JT使用范围,而yarn应运而生,解决了这两个问题。

为了表述清楚,大家可以先看hadoop版本说明这篇文章,我这里要说的是hadoop2.0,也就是新增了yarn之后的版本。

1. Yarn(或称MRv2)

Yarn把jobtracker的任务分解开来,分为:

  • ResourceManager(简写RM)负责管理分配全局资源
  • ApplicationMaster(简写AM),AM与每个具体任务对应,负责管理任务的整个生命周期内的所有事宜

除了上面两个以外,tasktracker被NodeManager(简写NM)替代,RM与NM构成了集群的计算平台。这种设计允许NM上长期运行一些辅助服务,这些辅助服务一般都是应用相关的,通过配置项指定,在NM启动时加载。例如在yarn上运行mapreduce程序时,shuffle就是一个由NM加载起来的辅助服务。需要注意的是,在hadoop 0.23之前的版本,shuffle是tasktracker的一部分。

与每个应用相关的AM是一个框架类库,它与RM沟通协商如何分配资源,与NM协同执行并且监测应用的执行情况。在yarn的设计中,mapreduce只是一种编程模式,yarn还允许像MPI(message passing interface),Spark等应用构架部署在yarn上运行。

2. Yarn设计

Yarn概述
上图是一个典型的YARN集群。可以看到RM有两个主要服务:

  • 可插拔的Scheduler,只负责用户提交任务的调度
  • ApplicationsMaster的(简写AsM)负责管理集群中每个任务的ApplicationMaster(简写AM),负责任务的监控、失败重起等

在hadoop1.0时,资源分配的单位是slot,再具体分为map的slot与reduce的slot,而且这些slot的个数是在任务运行前事先定义的,在任务运行过程中不能改变,很明显,这会造成资源的分配不均问题。在haodop2.0中,yarn采用了container的概念来分配资源。每个container由一些可以动态改变的属性组成,到现在为止,仅支持内存、cpu两种。但是yarn的这种资源管理方式是通用的,社区以后会加入更多的属性,比如网络带宽,本地硬盘大小等等。

3. Yarn主要组件

在这小节里,主要介绍yarn各个组件,以及他们之间是如何通信的。

3.1 ClientRM

Yarn概述

上面这个图是Client向RM提交任务时的流程。
(1) Client通过New Application Request来通知RM中的AsM组建
(2) AsM一般会返回一个新生成的全局ID,除此之外,传递的信息还有集群的资源状况,这样Client就可以在需要时请求资源来运行任务的第一个container即AM。
(3) 之后,Client就可以构造并发送ASC了。ASC中包括了调度队列,优先级,用户认证信息,除了这些基本的信息之外,还包括用来启动AM的CLC信息,一个CLC中包括jar包、依赖文件、安全token,以及运行任务过程中需要的其他文件。

经过上面这三步,一个Client就完成了一次任务的提交。之后,Client可以直接通过RM查询任务的状态,在必要时,可以要求RM杀死这个应用。如下图:
Yarn概述

3.2 RMAM

RM在收到Client端发送的ASC后,它会查询是否有满足其资源要求的container来运行AM,找到后,RM会与那个container所在机器上的NM通信,来启动AM。下面这个图描述了这其中的细节。
Yarn概述

(1) AM向RM注册,这个过程包括handshaking过程,并且传递一些信息,包括AM监听的RPC端口、用于监测任务运行状态的URL等。
(2) RM中的Scheduler部件做回应。这个过程会传递AM所需的信息,比如这个集群的最大与最小资源使用情况等。AM利用这些信息来计算并请求任务所需的资源。
(3) 这个过程是AM向RM请求资源。传递的信息主要包含请求container的列表,还有可能包含这个AM已经释放的container的列表。
(4) 在AM经过(3)请求资源之后,在稍微晚些时候,会把心跳包与任务进度信息发送给RM
(5) Scheduler在收到AM的资源请求后,会根据调度策略,来分配container以满足AM的请求。
(6) 在任务完成后,AM会给RM发送一个结束消息,然后退出。

在上面(5)与(6)之间,AM在收到RM返回的container列表后,会与每个container所在机器的NM通信,来启动这个container,下面就说说这个过程。

3.2 AMNM

Yarn概述
(1) AM向container所在机器的NM发送CLC来启动container
(2)(3) 在container运行过程中,AM可以查询它的运行状态

4. API

通过上面的描述,开发者在开发YARN上的应用时主要需要关注以下接口:

  • ApplicationClientProtocol

    Client使用这个协议来与RM通信,来启动一个新应用,检查任务的运行状态或杀死任务

  • ApplicationMasterProtocol

    AM使用这个协议来向RM注册/撤销,请求资源来运行任务。

  • ContainerManagementProtocol

    AM使用这个协议来与NM通信,来启动/停止container,查询container的状态。

5. 总结

用户在使用hadoop1.0 API编写的MapReduce可以不用修改直接运行在yarn上,不过随着yarn的发展,向后兼容性还不知道怎么样。不管怎样,新的yarn平台绝对值得我们使用。

Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource Negotiator,可以翻译为“另一个资源管理器”。yarn取代了以前hadoop中jobtracker(后面简写JT)的角色,因为以前JT的任务过重,负责任务的调度、跟踪、失败

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
在MySQL中使用視圖的局限性是什麼?在MySQL中使用視圖的局限性是什麼?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations:1)他們不使用Supportallsqloperations,限制DatamanipulationThroughViewSwithJoinsOrsubqueries.2)他們canimpactperformance,尤其是withcomplexcomplexclexeriesorlargedatasets.3)

確保您的MySQL數據庫:添加用戶並授予特權確保您的MySQL數據庫:添加用戶並授予特權May 14, 2025 am 12:09 AM

porthusermanagementinmysqliscialforenhancingsEcurityAndsingsmenting效率databaseoperation.1)usecReateusertoAddusers,指定connectionsourcewith@'localhost'or@'%'。

哪些因素會影響我可以在MySQL中使用的觸發器數量?哪些因素會影響我可以在MySQL中使用的觸發器數量?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers,butacticalfactorsdeterminetheireffactective:1)serverConfiguration impactactStriggerGermanagement; 2)複雜的TriggerSincreaseSySystemsystem load; 3)largertablesslowtriggerperfermance; 4)highConconcConcrencerCancancancancanceTigrignecentign; 5); 5)

mysql:存儲斑點安全嗎?mysql:存儲斑點安全嗎?May 14, 2025 am 12:07 AM

Yes,it'ssafetostoreBLOBdatainMySQL,butconsiderthesefactors:1)StorageSpace:BLOBscanconsumesignificantspace,potentiallyincreasingcostsandslowingperformance.2)Performance:LargerrowsizesduetoBLOBsmayslowdownqueries.3)BackupandRecovery:Theseprocessescanbe

mySQL:通過PHP Web界面添加用戶mySQL:通過PHP Web界面添加用戶May 14, 2025 am 12:04 AM

通過PHP網頁界面添加MySQL用戶可以使用MySQLi擴展。步驟如下:1.連接MySQL數據庫,使用MySQLi擴展。 2.創建用戶,使用CREATEUSER語句,並使用PASSWORD()函數加密密碼。 3.防止SQL注入,使用mysqli_real_escape_string()函數處理用戶輸入。 4.為新用戶分配權限,使用GRANT語句。

mysql:blob和其他無-SQL存儲,有什麼區別?mysql:blob和其他無-SQL存儲,有什麼區別?May 13, 2025 am 12:14 AM

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而ilenosqloptionslikemongodb,redis和calablesolutionsolutionsolutionsoluntionsoluntionsolundortionsolunsonstructureddata.blobobobissimplobisslowdeperformberbutslowderformandperformancewithlararengedata;

mySQL添加用戶:語法,選項和安全性最佳實踐mySQL添加用戶:語法,選項和安全性最佳實踐May 13, 2025 am 12:12 AM

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

MySQL:如何避免字符串數據類型常見錯誤?MySQL:如何避免字符串數據類型常見錯誤?May 13, 2025 am 12:09 AM

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollat​​ionsEttingSefectery.1)usecharforfixed lengengtrings,varchar forvariable-varchar forbariaible length,andtext/blobforlargerdataa.2 seterters seterters seterters

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。