1. 程式人生 > >大資料(5)---分散式任務資源排程Yarn

大資料(5)---分散式任務資源排程Yarn

前面也說到過的Yarn是hadoop體系中的資源排程平臺。所以在整個hadoop的包裡面自然也是有它的。這裡我們就簡單介紹下,並配置搭建yarn叢集。

首先來說Yarn中有兩大核心角色Resource Manager和Node Manager。

 

Resource Manager負責接收使用者提交的分散式計算程式/任務,併為其劃分資源,管理監控各個Node Manager。

 

Node Manager 接收resoResource Manager分配過來的任務,並計算。

 

 

 

通俗一點說就是計算程式會被打成一個jar包,然後分配到每個node manager上面去,這樣每個node manager 執行的程式碼都是一樣,只是可能資料來源不一樣。

 

 

 

 

叢集配置:

 

 

node manager在物理上應該跟data node部署在一起,方便資料的讀取

 

 

 

Yarn的軟體在hadoop裡面的都是有的,就和hdfs一樣,我們只需要去配置一下,然後啟動就可以了

 

每臺機器都對etc/hadoop/yarn-site.xml進行配置

 

 

 

<property><!--配置redource manager-->

 

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

 

<value>nijunyang68</value>

 

</property>

 

 

 

 因為之前配置hdfs叢集的時候已經在slaves中將叢集IP的都配置進去了,所以現在只需要一鍵執行指令碼就可以了:start-yarn.sh

注意在哪臺機器啟動redource manager就在那兒執行這個指令碼,上面的配置只是告訴叢集的中機器誰是redource manager,所以執行這個指令碼需要在配置中的那個機器上面去執行。從日誌中也可以看見,resource manager是在本機啟動的,node manager是在其他機器上面啟動的。

 

 

 預設8088埠可以在web頁面檢視yarn叢集資訊

 

 

 

說一點,上面顯示記憶體大小是不對的,因為我們沒有配置,都是使用的預設,並不是我機器的實際值,實際上我的虛擬機器總共才1G的記憶體

 

 

 

 

 

 

 

 

配置詳情:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

 

<property>

 

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

 

<value>1024</value>

 

</property>

 

記憶體有個最小分配限制1024,否則叢集是無法啟動的。

 

核數也並不是實際CPU的核數,我的虛擬機器也才1核,這兒的意思是假如我記憶體200m,現在有一個任務需要100m記憶體,那麼我這個機器就可以起兩個任務,所以可以把核數配置成2,如果配置成那麼久只能起一個任務。意思就是我CPU雖然是一核,但是我一個人100M,我200記憶體可以起兩個任務,那麼我CPU的運算能力就平均分給這兩個任務。

 

<property>

 

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

 

<value>2</value>

 

</property>

 

 至此yarn叢集就搭建完畢,後續就等著mapreduce任務丟上去運行了。

&nb