hadoop之旅4-centerOS7: hadoop配置yarn資源管理器

爾以發表於2018-10-11

首先介紹一下什麼是yarn資源管理器:

YARN(Yet Another Resource Negotiator)是一個通用的資源管理平臺,可為各類計算框架提供資源的管理和排程。 其核心出發點是為了分離資源管理與作業排程/監控,實現分離的做法是擁有一個全域性的資源管理器(ResourceManager,RM),以及每個應用程式對應一個的應用管理器(ApplicationMaster,AM),應用程式由一個作業(Job)或者Job的有向無環圖(DAG)組成。

YARN可以將多種計算框架(如離線處理MapReduce、線上處理的Storm、迭代式計算框架Spark、流式處理框架S4等) 部署到一個公共叢集中,共享叢集的資源。

簡而言之,可以提供如下功能:

  1. 資源統一的管理和排程

叢集中所有節點的資源(記憶體、CPU、磁碟、網路等)抽象為Container。計算框架需要資源進行運算任務時需要向YARN申請Container, YARN按照特定的策略對資源進行排程進行Container的分配

  1. 資源隔離

YARN使用了輕量級資源隔離機制Cgroups進行資源隔離以避免相互干擾,一旦Container使用的資源量超過事先定義的上限值,就將其殺死。

貼一張隨處可見的yarn的架構圖

hadoop之旅4-centerOS7: hadoop配置yarn資源管理器
yarn通過ResourceManager和NodeManager會直接管理和排程客戶端的請求與分發。

下面直接帶大家配置hadoop的yarn資源管理

第一步,配置master主節點

進入到hadoop的目錄下的/etc/hadoop裡,編輯yarn-site.xml檔案

vi yarn-site.xml
複製程式碼

預設裡面都是空的,在configuration標籤內配置

<property>
 <name>yarn.resourcemanager.hostname</name> 
 <value>master</value>  //resourcemanager的主機
</property>

 <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
複製程式碼

然後編輯mapred-site.xml檔案

  <property>
     <name>mapreduce.framework.name</name>      
     <value>yarn</value>
   </property>
複製程式碼

配置mapreduce作業的資源管理框架為yarn

第二步 配置slave從節點

進入到slave從節點的hadoop的目錄下的/etc/hadoop裡,編輯yarn-site.xml檔案

vi yarn-site.xml
複製程式碼

預設裡面都是空的,在configuration標籤內配置

  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value> master:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value> master:8031</value>
  </property>
複製程式碼

在從節點裡配置好master節點的資源管理地址,保證slave從節點可以找到master主節點裡的resourcemanager資源管理器

同時為了保證MapReduce作業能夠正常執行還需要配置

 <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
複製程式碼

然後就可以啟動yarn資源管理器了。仍然可以通過叢集的方式啟動,在master節點中執行以下命令

start-yarn.sh 啟動yarn叢集
stop-yarn.sh 停止yarn叢集
複製程式碼

可以看到

hadoop之旅4-centerOS7: hadoop配置yarn資源管理器

yarn叢集已經成功啟動了。一般我們會先啟動hadoop叢集start-dfs.sh,再啟動yarn叢集start-yarn.sh.也可以通過start-all.sh命令可以一鍵全部啟動。

相關文章