新聞中心
舊的MapReduce架構(gòu)

創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,上千家客戶的共同信賴。提供成都網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站開發(fā)、網(wǎng)站定制、賣友情鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
- JobTracker: 負責(zé)資源管理,跟蹤資源消耗和可用性,作業(yè)生命周期管理(調(diào)度作業(yè)任務(wù),跟蹤進度,為任務(wù)提供容錯)
- TaskTracker: 加載或關(guān)閉任務(wù),定時報告任務(wù)狀態(tài)
此架構(gòu)會有以下問題:
- JobTracker 是 MapReduce 的集中處理點,存在單點故障
- JobTracker 完成了太多的任務(wù),造成了過多的資源消耗,當(dāng) MapReduce job 非常多的時候,會造成很大的內(nèi)存開銷。這也是業(yè)界普遍總結(jié)出老 Hadoop 的 MapReduce 只能支持 4000 節(jié)點主機的上限
- 在 TaskTracker 端,以 map/reduce task 的數(shù)目作為資源的表示過于簡單,沒有考慮到 cpu/ 內(nèi)存的占用情況,如果兩個大內(nèi)存消耗的 task 被調(diào)度到了一塊,很容易出現(xiàn) OOM
- 在 TaskTracker 端,把資源強制劃分為 map task slot 和 reduce task slot , 如果當(dāng)系統(tǒng)中只有 map task 或者只有 reduce task 的時候,會造成資源的浪費,也就集群資源利用的問題
總的來說就是單點問題和資源利用率問題
YARN架構(gòu)
YARN就是將 JobTracker 的職責(zé)進行拆分,將資源管理和任務(wù)調(diào)度監(jiān)控拆分成獨立的進程:一個全局的資源管理和一個每個作業(yè)的管理(ApplicationMaster) ResourceManager 和 NodeManager 提供了計算資源的分配和管理,而 ApplicationMaster 則完成應(yīng)用程序的運行
- ResourceManager: 全局資源管理和任務(wù)調(diào)度
- NodeManager: 單個節(jié)點的資源管理和監(jiān)控
- ApplicationMaster: 單個作業(yè)的資源管理和任務(wù)監(jiān)控
- Container: 資源申請的單位和任務(wù)運行的容器
架構(gòu)對比
YARN架構(gòu)下形成了一個通用的資源管理平臺和一個通用的應(yīng)用計算平臺,避免了舊架構(gòu)的單點問題和資源利用率問題,同時也讓在其上運行的應(yīng)用不再局限于 MapReduce 形式
YARN基本流程
1. Job submission
從ResourceManager 中獲取一個Application ID 檢查作業(yè)輸出配置,計算輸入分片 拷貝作業(yè)資源(job jar、配置文件、分片信息)到 HDFS,以便后面任務(wù)的執(zhí)行
2. Job initialization
ResourceManager 將作業(yè)遞交給 Scheduler(有很多調(diào)度算法,一般是根據(jù)優(yōu)先級)Scheduler 為作業(yè)分配一個 Container,ResourceManager 就加載一個 application master process 并交給 NodeManager。
管理 ApplicationMaster 主要是創(chuàng)建一系列的監(jiān)控進程來跟蹤作業(yè)的進度,同時獲取輸入分片,為每一個分片創(chuàng)建一個 Map task 和相應(yīng)的 reduce task Application Master 還決定如何運行作業(yè),如果作業(yè)很?。膳渲茫?,則直接在同一個 JVM 下運行
3. Task assignment
ApplicationMaster 向 Resource Manager 申請資源(一個個的Container,指定任務(wù)分配的資源要求)一般是根據(jù) data locality 來分配資源
4. Task execution
ApplicationMaster 根據(jù) ResourceManager 的分配情況,在對應(yīng)的 NodeManager 中啟動 Container 從 HDFS 中讀取任務(wù)所需資源(job jar,配置文件等),然后執(zhí)行該任務(wù)
5. Progress and status update
定時將任務(wù)的進度和狀態(tài)報告給 ApplicationMaster Client 定時向 ApplicationMaster 獲取整個任務(wù)的進度和狀態(tài)
6. Job completion
Client定時檢查整個作業(yè)是否完成 作業(yè)完成后,會清空臨時文件、目錄等
網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)Hadoop教程:HadoopYARN
網(wǎng)址分享:http://www.5511xx.com/article/dposojd.html


咨詢
建站咨詢
