系列文章:mapreduce 1.x存在的問題【大資料】hadoop知識點簡介
【大資料】yarn知識點簡介
【大資料】spark知識點簡介
主節點jobtracker帶多個幹活的從節點tasktracker,典型的一對多架構。客戶端先提交mapreduce作業到jobtracker,然後jobtracker再進行task的排程,排程完了之後,作業會分發到各個tasktracker中執行(可見圖中的tasktracker各自執行2個map任務和1個reduce任務)。此外,tasktracker通過心跳來告訴jobtracker自己的健康狀況。
這種單點架構是有風險的,jobtracker同時負責資源管理和任務排程,萬一jobtracker掛了,整個mapreduce作業都會掛掉。
資源利用率低下和運維成本太高
在沒有yarn的時候,乙個集群負責乙個計算框架,例如hadoop集群只能執行mapreduce作業,要使用spark的話,就要用另外乙個spark集群,大大增加了運維成本。此外,如上圖所示,多個集群的總利用率不高,會有空閒時段。
客戶端負責給rm提交請求,也就是提交乙個啟動/殺死作業的請求到rm。
負責整個集群的資源管理和排程。通常乙個集群裡面,active狀態的rm程序只有乙個。
負責整個集群的資源管理和排程
乙個rm(主節點)會帶多個nm(從節點),有點類似hdfs裡面的乙個namenode帶多個datanode的架構。
處理客戶端的請求
當接收到客戶端提交的請求(例如啟動/殺死乙個作業)之後,會找乙個container,啟動乙個am。不同型別的作業,對應不同的am。例如mapreduce作業,就會提交到乙個mapreduce am,如果是spark作業,則會提交到乙個spark am。
rm會監控am的執**況,如果乙個am掛了,rm就會通知另外乙個節點,單獨再啟動乙個am,從而實現容錯。
監控nodemanager
同時,rm會通過心跳,監控nm的狀態。
負責單個結點的資源管理和task管理,乙個集群中有多個nm。
定期向rm匯報情況
定期向rm傳送本節點心跳、資源的使用情況,以及container任務的運**況。因為rm要知道每個任務執行到哪一步,以及目前哪些節點資源不夠,從而將任務分發到其他資源充足的結點。
接收並處理rm的container啟停的命令單個結點的資源管理和task管理
顧名思義,am負責應用程式的管理。
乙個作業(即應用),對應乙個am。
乙個作業,可能會有多個container來執行。
am執行在container裡面。
資料拆分
例如資料的拆分,乙個檔案有多大,要拆分成很多個塊。
向rm申請資源
am會根據應用程式的規模,向rm申請資源,並分配給內部的task。這些資源最終都是執行在container上的。
am使用輪詢的方式,通過rpc協議,向rm申請和領取資源。
與nm通訊以啟停task
task執行在container中,am會和nm進行互動,因為申請到資源後,會通知nm啟動container來執行作業。
task的監控和容錯container由rm分配。
所有的task都執行在container中。
container封裝了任務的描述資訊,例如cpu、memory、環境變數等。
yarn的執行流程,不僅適用於mapreduce,對於spark on yarn同樣適用,只不過am不一樣而已。
參考資料:
Yarn知識點總結
1 yarn 1 描敘 yarn是乙個資源排程平台,負責為運算程式提供伺服器運算資源,相當於乙個分布式的作業系統平台,而mapreduce等運算程式則相當於執行於作業系統之上的應 用程式。2 依賴其它架構 4 重要知識點 工作機制詳解 0 mr程式提交到客戶端所在的節點。2 rm將該應用程式的資源路...
大資料學習知識點
檔案儲存 hadoop hdfs tachyon kfs 離線計算 hadoop mapreduce spark 流式 實時計算 storm spark streaming s4 heron k v nosql 資料庫 hbase redis mongodb 資源管理 yarn mesos 日誌收集...
大資料相關知識點記錄
1 apache druid 和 alibaba druid是兩個技術。apache druid是乙個為olap查詢需求而設計的開源大資料系統,druid提供低延時的資料插入,實時的資料查詢。簡單說,就是乙個資料庫系統。有乙個比其他資料庫系統好的特性是,預聚合。可以做max等計算操作。這個是比傳統關...