前言

YARN(Yet Another Resource Manage,另一種資源協(xié)調者)是hadoop-0.23版本引入的的一個新的特性,可以說它是對原有Hadoop Mapreduce(Hadoop 1.0)架構的一種里程碑式的改革。它在整個Hadoop生態(tài)體系中負責資源管理和作業(yè)調度,支持各類分布式應用程序的執(zhí)行。

本文檔的大部分內容參考于Apache Hadoop 2.7.2——YARN官方網(wǎng)站,是對網(wǎng)站內容的翻譯加上本人自己的理解,有些內容可能會因為本人的知識水平和英文水平有限而導致理解上存在偏差或不足的地方,還望指正。

概況

Apache Hadoop YARN 是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統(tǒng),可為上層應用提供統(tǒng)一的資源管理和調度。它將Hadoop 1.0架構中的JobTracker的兩塊主要功能(資源管理和任務生命周期管理)拆分成了兩個單獨的組件:ResourceManager和Application Master。它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。

本篇文檔主要從以下幾個方面介紹YARN。

  • MRv1架構及其存在的缺陷

  • YARN架構及其優(yōu)點

  • 調度器(Scheduler)

  • RM重啟機制(ResourceManager Restart)

  • RM高可用(ResourceManager HA)

  • YARN常用命令

1. MRv1架構及其存在的缺陷

1.1 MapReduce和HDFS簡介

在第一代Hadoop系統(tǒng)中,一個Hadoop集群可以分解為兩個抽象實體:MapReduce計算引擎和分布式文件系統(tǒng)(HDFS)。其中MapReduce引擎能夠在整個集群上執(zhí)行Map和Reduce任務并報告結果,而HDFS分布式文件系統(tǒng)則提供了一種存儲模式,可跨節(jié)點復制數(shù)據(jù)以進行處理。HDFS一般由一個NameNode和多個DataNode組成,其中NameNode是文件系統(tǒng)的主系統(tǒng),提供元數(shù)據(jù)服務來執(zhí)行數(shù)據(jù)分發(fā)和復制,而DataNode是實際儲存數(shù)據(jù)的節(jié)點。客戶端通過連接NameNode來請求對文件的元數(shù)據(jù)的訪問或修改,而實際的數(shù)據(jù)復制存儲都是發(fā)生在DataNode。

  • 查看NameNode所在機器:

    查看hadoop-home/etc/hadoop/hdfs-site.xml的配置文件。

  • 查看DataNode所在機器及狀態(tài)信息:

    在hadoop-home/bin目錄下執(zhí)行命令./hdfs dfsadmin -report。

1.2 MRv1架構分析