前言
YARN(Yet Another Resource Manage,另一種資源協(xié)調(diào)者)是hadoop-0.23版本引入的的一個新的特性,可以說它是對原有Hadoop Mapreduce(Hadoop 1.0)架構(gòu)的一種里程碑式的改革。它在整個Hadoop生態(tài)體系中負(fù)責(zé)資源管理和作業(yè)調(diào)度,支持各類分布式應(yīng)用程序的執(zhí)行。
本文檔的大部分內(nèi)容參考于Apache Hadoop 2.7.2——YARN官方網(wǎng)站,是對網(wǎng)站內(nèi)容的翻譯加上本人自己的理解,有些內(nèi)容可能會因?yàn)楸救说闹R水平和英文水平有限而導(dǎo)致理解上存在偏差或不足的地方,還望指正。
概況
Apache Hadoop YARN 是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度。它將Hadoop 1.0架構(gòu)中的JobTracker的兩塊主要功能(資源管理和任務(wù)生命周期管理)拆分成了兩個單獨(dú)的組件:ResourceManager和Application Master。它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。
本篇文檔主要從以下幾個方面介紹YARN。
MRv1架構(gòu)及其存在的缺陷
YARN架構(gòu)及其優(yōu)點(diǎn)
調(diào)度器(Scheduler)
RM重啟機(jī)制(ResourceManager Restart)
RM高可用(ResourceManager HA)
YARN常用命令
1. MRv1架構(gòu)及其存在的缺陷
1.1 MapReduce和HDFS簡介
在第一代Hadoop系統(tǒng)中,一個Hadoop集群可以分解為兩個抽象實(shí)體:MapReduce計算引擎和分布式文件系統(tǒng)(HDFS)。其中MapReduce引擎能夠在整個集群上執(zhí)行Map和Reduce任務(wù)并報告結(jié)果,而HDFS分布式文件系統(tǒng)則提供了一種存儲模式,可跨節(jié)點(diǎn)復(fù)制數(shù)據(jù)以進(jìn)行處理。HDFS一般由一個NameNode和多個DataNode組成,其中NameNode是文件系統(tǒng)的主系統(tǒng),提供元數(shù)據(jù)服務(wù)來執(zhí)行數(shù)據(jù)分發(fā)和復(fù)制,而DataNode是實(shí)際儲存數(shù)據(jù)的節(jié)點(diǎn)。客戶端通過連接NameNode來請求對文件的元數(shù)據(jù)的訪問或修改,而實(shí)際的數(shù)據(jù)復(fù)制存儲都是發(fā)生在DataNode。
查看NameNode所在機(jī)器:
查看hadoop-home/etc/hadoop/hdfs-site.xml的配置文件。
查看DataNode所在機(jī)器及狀態(tài)信息:
在hadoop-home/bin目錄下執(zhí)行命令./hdfs dfsadmin -report。