YARN安裝和使用


簡介

Yet Another Resource Negotiator ,負責整個集群資源的調度,和管理,支持多框架資源統一調度(HIVE spark flink)

開啟yarn

安裝hadoop,可以看我之前的博文 這邊就不講了

編輯 etc/hadoop/mapred-site.xml: 添加如下配置

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

  

編輯 etc/hadoop/yarn-site.xml: 添加如下配置

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

  

啟動 RM 和 NM

Start ResourceManager daemon and NodeManager daemon:
  $ sbin/start-yarn.sh

  

關閉Yarn

 sbin/stop-yarn.sh

  

打開瀏覽器訪問:http://192.168.1.100:8088/cluster

模塊簡介

ResourceManager (RM)

客戶端提交作業到 RM, RM對應多個 NM ,RM是集群中對外提供的服務,同一時刻只有一個負責資源相關處理,客戶端任務來了之后,先啟動AM 然后監控AM。 並且還監控NM

ApplicationMaster(AM)

運行在NodeManager里面的,去RM里面申請資源用於在NM上啟動對應的task ,每個應用程序對應一個AM.。 並且做數據的切分,為每個task向RM申請資源。並且和NM通信。

NodeManager(NM)

真正工作計算的節點,同時向RM發送心跳信息 任務執行情況。接受來自RM的請求 並且處理AM的命令。

Container

對於任務的運行抽象,一個Container既可以運行AM 也可以運行具體的 map 和 reduce

yarn的基本流程
  • client向yarn提交job,首先找ResourceManager分配資源,
  • ResourceManager開啟一個Container,在Container中運行一個Application manager
  • Application manager找一台nodemanager啟動Application master,計算任務所需的計算
  • Application master向Application manager(Yarn)申請運行任務所需的資源
  • Resource scheduler將資源封裝發給Application master
  • Application master將獲取到的資源分配給各個nodemanager
  • 各個nodemanager得到任務和資源開始執行map task
  • map task執行結束后,開始執行reduce task
  • map task和 reduce task將執行結果反饋給Application master
  • Application master將任務執行的結果反饋application manager![](./梁天的博客 _ YARN安裝和使用

把作業提交到 yarn上面

自己的MapReduce 首先打成個jar包 傳到服務器 然后執行

hadoop jar xxx.jar me.liangtian.App param1 param2 

問題排查

我這邊一直報錯: **Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out. **

可能是下面幾點造成的

  • 系統設置有關,文件較大,無法分配大內存
  • 機器位數是64位導致這個問題
  • /etc/hosts 里面沒有配master的hostname
  • 防火牆沒關
  • 臨時目錄問題

問題1我安裝網上方法,對配置文件做了修改: vim /etc/security/limits.conf 加入 * soft nofile 102400 * hard nofile 409600 vim /etc/pam.d/login 加入:session required /lib/security/pam_limits.so但是還是沒有辦法解決

問題三:由於我是偽分布式,所以只要配本機就行,看了下配置了hostname

問題四:setup下看了我的防火牆,發現防火牆有兩個,一個是firework一個是selinux,第一個關了,第二個沒關 關了還是不行

最后發現是問題五: yarn.nodemanager.local-dirs對應的路徑必須在hdfs-site.xml中的hadoop.tmp.dir路徑下,否則yarn會報錯找不到緩存文件 需要修改 yarn-site.xml 加上對應的文件目錄

<property>
	<name>yarn.nodemanager.local-dirs</name>
	<value>hadoop.tmp.dir/nm-local-dir</value>
</property>

  

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM