Yarn簡單分佈式集羣搭建
前言
上篇文章介紹瞭如何搭建簡單分佈式的HDFS集羣,那麼HDFS說到底僅僅是一個文件系統,Hadoop另一個核心模塊MapReduce(計算框架或編程模型)就是對HDFS中存儲的數據進行計算,既然要進行運算就必須要有CPU和內存,那麼對於MapReduce的計算如何給它分配CPU和內存呢?這就需要一個統一資源調度器來對來對hadoop集羣中的資源進行統一調度。因此Hadoop中由引入了Yarn,來完成資源調度任務。
一、MapReduce工作原理
MapReduce是一個計算框架或者編程模型,它由兩部分組成:Map進行數據切分後的局部運算,Reduce進行Map局部計算完成後的整合運算,示意圖如下
由上面MapReduce工作示意圖就能發現一個問題,如何給各個Map運算分配適當CPU和內存是一個關鍵問題,正常來說對於Map處理任務多的節點,應該分配更多的內存和CPU,那麼在Hadoop中這一調度由誰管理呢?此時Yarn出現了,它就是對資源進行統一調度分配的,來保證資源的合理充分運用。
二、Yarn工作原理
Yarn由兩部分組成ResourceManager+NodeManager:
ResourceManager整合hadoop集羣的資源(CPU和內存),進行統一調度,它並不做實際的計算,僅僅是用於整合集羣資源,然後分配給NodeManager,由NodeManage進行實際的運算。
這與HDFS的模式類似,NameNode不做實際的數據存儲,它僅僅存儲數據的元數據信息(如何切塊,切了幾塊,每塊數據在哪個節點等等),DataNode進行實際的數據存儲。由上面的解釋可以明白,充當DataNode節點的機器肯定也充當NodeManager。
Yarn集羣和HDFS集羣進行共同工作,HDFS集羣存儲數據,Yarn集羣調度資源進行計算,兩者共同工作示意圖如下
三、Yarn集羣搭建
Yarn集羣搭建很簡單,與上篇博文搭建HDFS集羣的唯一不同之處就是多修改兩個配置文件maped-site.xml和yarn-site.xml即可,其餘就是按照搭建HDFS集羣操作
1、集羣搭建部署規劃
準備三臺機器
hadoop3(192.168.23.133):NameNode & DataNode & NodeManager
hadoop4(192.168.23.134):DataNode & NodeManager & ResourceManager
hadoop5(192.168.23.135):DataNode & NodeManager
2、與HDFS集羣搭建相比多修改兩個配置文件
1、修改yarn-site.xml配置文件
<!--固定寫法-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定哪臺機器爲ResourceManager-->
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop4</value>
</property>
2、修改mapred-site.xml配置文件
mapred-site.xml配置文件在hadoop/etc目錄下的名稱是mapred-site.xml.template,因此我們需要首先將mapred-site.xml.template文件名修改爲mapred-site.xml或者拷貝一份mapred-site.xml.template到mapred-site.xml中,我選擇拷貝。
cp /root/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml.template /root/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml
修改mapred-site.xml配置文件
<property>
<description>The hostname of the RM.</description>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3、啓動HDFS集羣和Yarn集羣
可以在任一機器節點上啓動HDFS集羣
start-dfs.sh
Yarn集羣必須在ResourceManager所在節點啓動
start-yarn.sh
下圖表明已經部署完成我們的規劃
4、HDFS集羣和Yarn集羣的可視化
HDFS集羣的可視化是NameNode所在節點機器的IP地址加端口號:50070
Yarn集羣的可視化是ResourceManager所在節點機器的IP地址加端口號:8088
在這裏插入圖片描述