1.1 YARN系統架構
YARN的基本思想是將資源管理和作業調度/監視功能劃分為單獨的守護進程。其思想是擁有一個全局ResourceManager (RM),以及每個應用程序擁有一個ApplicationMaster (AM)。應用程序可以是單個作業,也可以是一組作業。
一個ResourceManager和多個NodeManager構成了YARN資源管理框架。他們是YARN啟動后長期運行的守護進程,來提供核心服務。
ResourceManager
NodeManager
container
ApplicationMaster(簡稱AM)
YARN的角色 | MapReduce 1.x的角色 |
---|---|
ResourceManager、Application Master、Timeline Server | JobTracker |
NodeManager | TaskTracker |
Container | Slot |
是在系統中的所有應用程序之間仲裁資源的最終權威,即管理整個集群上的所有資源分配,內部含有一個Scheduler(資源調度器)
是每臺機器的資源管理器,也就是單個節點的管理者,負責啟動和監視容器(container)資源使用情況,并向ResourceManager及其 Scheduler報告使用情況
即集群上的可使用資源,包含cpu、內存、磁盤、網絡等
實際上是框架的特定的庫,每啟動一個應用程序,都會啟動一個AM,它的任務是與ResourceManager協商資源,并與NodeManager一起執行和監視任務
1.2. YARN的配置
YARN屬于Hadoop的核心組件,不需要單獨安裝,只需要修改一些配置文件即可。
1.2.1. mapred-site.xml
[root@qianfeng01 hadoop-3.3.1]# vi /usr/local/hadoop-3.3.1/etc/hadoop/mapred-site.xml
<configuration><!-- 指定MapReduce作業執行時,使用YARN進行資源調度 --><property><name>mapreduce.framework.name</name><value>yarn</value></property> </configuration>
1.2.2. yarn-site.xml
[root@qianfeng01 hadoop-3.3.1]# vim /usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml
<configuration><!-- 設置ResourceManager --><property><name>yarn.resourcemanager.hostname</name><value>qianfeng01</value></property>
?<!--配置yarn的shuffle服務--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value> </property>
</configuration>
1.2.3. hadoop-env.sh
[root@qianfeng01 hadoop-3.3.1]# vim /usr/local/hadoop-3.3.1/etc/hadoop/hadoop-env.sh
# 添加如下:
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
1.2.4. 分發到其他節點
[root@qianfeng01 hadoop-3.3.1]# scp -r /usr/local/hadoop-3.3.1/etc/hadoop/* qianfeng02:/usr/local/hadoop-3.3.1/etc/hadoop/ [root@qianfeng01 hadoop-3.3.1]# scp -r /usr/local/hadoop-3.3.1/etc/hadoop/* qianfeng03:/usr/local/hadoop-3.3.1/etc/hadoop/
1.2.5. YARN的服務啟停
描述 | 命令 |
---|---|
開啟YARN全部服務,在RM所在服務器上操作 | start-yarn.sh |
停止YARN全部服務,在RM所在服務器上操作 | stop-yarn.sh |
| 單點開啟YARN相關進程,在對應所在服務器上操作 | yarn --daemon start resourcemanager yarn --daemon start nodemanager | | 單點停止YARN相關進程,在對應所在服務器上操作 | yarn --daemon stop resourcemanager yarn --daemon stop nodemanager |
當YARN的進程開啟之后,我們可以在WebUI上查看到集群的資源信息、任務的運行狀態等
http://192.168.10.101:8088
服務名稱 | web UI端口 | url | 備注 |
---|---|---|---|
NameNode | 9870 | http://qianfeng01:9870/ | 所有注意服務啟動的主機名或者ip |
SecondaryNameNode | 50090 | http://qianfeng02:9868 | |
historyServer | 19888 | http://qianfeng01:19888 | 默認歷史服務 |
DataNode | 50075 | http://qianfeng01:9864/ | |
ResouceManager | 8088 | http://qianfeng01:8088 | 默認8088 |
NodeManager | 8042 | http://qianfeng01:8042 | 默認8042 |
Guff_hys_python數據結構,大數據開發學習,python實訓項目-CSDN博客?
?