為了能夠對集群中的資源進行統(tǒng)一管理和調度,Hadoop 2.0
引入了數據操作系統(tǒng)YARN
。YARN
的引入,大大提高了集群的資源利用率,并降低了集群管理成本。首先,YARN允許多個應用程序運行在一個集群中,并將資源按需分配給它們,這大大提高了資源利用率,其次,YARN允許各類短作業(yè)和長服務混合部署在一個集群中,并提供了容錯、資源隔離及負載均衡等方面的支持,這大大簡化了作業(yè)和服務的部署和管理成本。
目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網站建設、域名、網絡空間、網站托管、企業(yè)網站設計、昌圖網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
[toc]
分享之前我還是要說下我自己創(chuàng)建的大數據交流群:784557197, 不管是學生還是大神 ,都歡迎加入一起探討
YARN總體上采用master/slave
架構,如圖1所示,其中,master
被稱為ResourceManager
,slave
被稱為NodeManager
,ResourceManager
負責對各個NodeManager上
的資源進行統(tǒng)一管理和調度。當用戶提交一個應用程序時,需要提供一個用以跟蹤和管理這個程序的ApplicationMaster
,它負責向ResourceManager
申請資源,并要求NodeManger
啟動可以占用一定資源的Container
。由于不同的ApplicationMaster
被分布到不同的節(jié)點上,并通過一定的隔離機制進行了資源隔離,因此它們之間不會相互影響。
當在YARN集群中同時運行多種應用程序時,可能造成節(jié)點負載不一,進而導致某些節(jié)點上的任務運行速度慢于其他節(jié)點,這對于OLAP需求的應用是不能接受的。為了解決該問題,通常有兩種解決方式:1)通過打標簽的方式將這類應用運行到一些獨享的節(jié)點上 2)在應用程序內部實現類似于MapReduce和Spark的推測執(zhí)行機制,為慢任務額外啟動一個或多個同樣的任務,以空間換時間的方式,避免慢任務拖慢整個應用程序的運行效率。
對于 YARN,會朝著通用資源管理和調度方向發(fā)展,而不僅僅限于大數據處理領域,包括對 MapReduce、Spark 短作業(yè)的支持,以及對 Web Service 等長服務的支持。