1. 程式人生 > >MapReduce的執行平臺—YARN快速理解

MapReduce的執行平臺—YARN快速理解

mapreduce程式應該是在很多機器上並行啟動,而且先執行maptask,當眾多的maptask都處理完自己的資料後,還需要啟動眾多的reduce task,這個過程如果用使用者自己手動排程不太現實,需要一個自動化的排程平臺——hadoop中就為執行mapreduce之類的分散式運算程式開發了一個自動化排程平臺——YARN

YARN的基本概念

yarn是一個分散式程式的執行排程平臺

yarn中有兩大核心角色

1、ResourceManager

接受使用者提交的分散式計算程式,併為其劃分資源

管理、監控各個Node Manager上的資源情況,以便於均衡負載

2、NodeManager

管理它所在機器的運算資源(cpu + 記憶體)

負責接受Resource Manager分配的任務,建立容器、回收資源

YARN的安裝

主節點:Resource Manager  1臺

從節點:Node Manager   N臺

Resource Manager一般安裝在一臺專門的機器上

Node Manager應該與HDFS中的data node重疊在一起

修改配置檔案:

yarn-site.xml

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop1</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.resource.memory-mb</name>

<value>2048</value>

</property>

<property>

<name>yarn.nodemanager.resource.cpu-vcores

</name>

<value>2</value>

</property>

然後複製到每一臺機器上

然後在hadoop1上,修改hadoop的slaves檔案,列入要啟動nodemanager的機器

然後將hadoop1到所有機器的免密登陸配置好

然後,就可以用指令碼啟動yarn叢集:

sbin/start-yarn.sh

停止:

sbin/stop-yarn.sh

啟動完成後,可以在windows上用瀏覽器訪問resourcemanager的web埠:

看resource mananger是否認出了所有的node manager節點

執行mapreduce程式

首先,為你的mapreduce程式開發一個提交job到yarn的客戶端類(模板程式碼)

l  描述你的mapreduce程式執行時所需要的一些資訊(比如用哪個mapper、reducer、map和reduce輸出的kv型別、jar包所在路徑、reducetask的數量、輸入輸出資料的路徑)

l  將資訊和整個工程的jar包一起交給yarn

然後,將整個工程(yarn客戶端類+ mapreduce所有jar和自定義類)打成jar

然後,將jar包上傳到hadoop叢集中的任意一臺機器上

最後,執行jar包中的(YARN客戶端類)

[[email protected] ~]# hadoop jar wc.jarcn.edu360.hadoop.mr.wc.JobSubmitter