前言

YARN(Yet Another Resource Manage,另一種資源協(xié)調(diào)者)是hadoop-0.23版本引入的的一個(gè)新的特性,可以說它是對原有Hadoop Mapreduce(Hadoop 1.0)架構(gòu)的一種里程碑式的改革。它在整個(gè)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 資源管理器,它是一個(gè)通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度。它將Hadoop 1.0架構(gòu)中的JobTracker的兩塊主要功能(資源管理和任務(wù)生命周期管理)拆分成了兩個(gè)單獨(dú)的組件:ResourceManager和Application Master。它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。

本篇文檔主要從以下幾個(gè)方面介紹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)中,一個(gè)Hadoop集群可以分解為兩個(gè)抽象實(shí)體:MapReduce計(jì)算引擎和分布式文件系統(tǒng)(HDFS)。其中MapReduce引擎能夠在整個(gè)集群上執(zhí)行Map和Reduce任務(wù)并報(bào)告結(jié)果,而HDFS分布式文件系統(tǒng)則提供了一種存儲模式,可跨節(jié)點(diǎn)復(fù)制數(shù)據(jù)以進(jìn)行處理。HDFS一般由一個(gè)NameNode和多個(gè)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。

1.2 MRv1架構(gòu)分析