Yarn本質及機制
Yarn是一個資源管理和調度的框架.主要進程包括:ResourceManager,NodeManager.
ResourceManager將各個資源部分(計算木蹬、內存绽昏、帶寬等)精心安排給NodeManager(Yarn分布在各節(jié)點上的進程)。ApplicationMaster(應用程序)管理一個在 Yarn 內運行的應用程序的每個實例缘琅。ApplicationMaster 負責協(xié)調來自 ResourceManager的資源缩宜,并通過 NodeManager 監(jiān)視容器的執(zhí)行和資源使用(CPU肘迎、內存等的資源分配).
Yarn是一個集群,所以在各個節(jié)點上都需配置.也算一個配置型框架.
Yarn之ResourceManager
在YARN中,ResourceManager負責集群中所有資源的統(tǒng)一管理和分配锻煌,它接收來自各個節(jié)點(NodeManager)的資源匯報信息妓布,并把這些信息按照一定的策略分配給各ApplicationManager(應用程序)。
Yarn之NodeManager
NodeManager是Yarn在每個節(jié)點上的代理進程,主要包括與ResourceManger保持通信宋梧,監(jiān)督Container的生命周期管理匣沼,監(jiān)控每個Container的資源使用(內存、CPU等)情況捂龄,追蹤節(jié)點健康狀況释涛,管理日志和不同應用程序用到的附屬服務.
Container:對任務運行環(huán)境的抽象加叁,封裝了CPU、內存等多維資源以及環(huán)境變量唇撬、啟動命令等任務運行相關的信息
Yarn的HA配置
注:配置Yarn之前,hadoop,JDK啥得得配置好,能夠正常運行!
配置NodeManager
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
啟用ResourceManager HA
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
聲明ResourceManager的地址,因為HA,所以配兩個
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster-yarn1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop102</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop103</value>
</property>
配置好之后,啟動hadoop下sbin里面的start-yarn.sh腳本
這是我配置的全路徑: sh /opt/modules/hadoop-2.5.0-cdh5.3.6/sbin/start-yarn.sh
然后在其他各節(jié)點JPS下能夠看到NodeManager,就OK了!