【大数据技术基础 | 实验十三】YARN实验:部署YARN集群
文章目录
一、实验目的
了解什么是YARN框架,如何搭建YARN分布式集群,并能够使用YARN集群提交一些简单的任务,理解YARN作为Hadoop生态中的资源管理器的意义。
二、实验要求
搭建YARN集群,并使用YARN集群提交简单的任务。观察任务提交的之后的YARN的执行过程。
三、实验原理
(一)YARN概述
YARN是一个资源管理、任务调度的框架,采用master/slave架构,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。其中,ResourceManager负责所有资源的监控、分配和管理,运行在主节点; NodeManager负责每一个节点的维护,运行在从节点;ApplicationMaster负责每一个具体应用程序的调度和协调,只有在有任务正在执行时存在。对于所有的applications,RM拥有绝对的控制权和对资源的分配权。而每个AM则会和RM协商资源,同时和NodeManager通信来执行和监控task。几个模块之间的关系如下图所示:
(二)YARN运行流程
master向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
ResourceManager启动一个container用于运行ApplicationMaster。
启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。
ApplicationMaster向ResourceManager发送请求,申请相应数目的container。
ResourceManager返回ApplicationMaster的申请的containers信息。申请成功的container,由ApplicationMaster进行初始化。container的启动信息初始化后,AM与对应的NodeManager通信,要求NM启动container。AM与NM保持心跳,从而对NM上运行的任务进行监控和管理。
container运行期间,ApplicationMaster对container进行监控。container通过RPC协议向对应的AM汇报自己的进度和状态等信息。
应用运行期间,master直接与AM通信获取应用的状态、进度更新等信息。
应用运行结束后,ApplicationMaster向ResourceManager注销自己,并允许属于它的container被收回。
四、实验环境
-
云创大数据实验平台:
-
Java 版本:jdk1.7.0_79
-
Hadoop 版本:hadoop-2.7.1
五、实验内容和步骤
(一)配置各服务器之间的免密登录
首先配置master,slave1和slave2之间的免密登录和各虚拟机的/etc/hosts
文件,详细配置步骤参考:【大数据技术基础 | 实验一】配置SSH免密登录
(二)配置HDFS并启动
首先,实验环境中的java路径没有配置,所以不能直接启动HDFS,需要重新配置,详细步骤参考:【大数据技术基础 | 实验三】HDFS实验:部署HDFS
若启动成功,在master上会看到类似的如下信息:
而在slave1、slave2上会看到类似的如下信息:
(三)在master机上配置YARN
首先指定YARN主节点,输入如下命令编辑文件/usr/cstor/hadoop/etc/hadoop/yarn-site.xml
:
vim /usr/cstor/hadoop/etc/hadoop/yarn-site.xml
将如下内容嵌入此文件里configuration标签间:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
yarn-site.xml
是YARN守护进程的配置文件。第一句配置了ResourceManager的主机名,第二句配置了节点管理器运行的附加服务为mapreduce_shuffle
,只有这样才可以运行MapReduce程序。
紧接着在master机上操作,将配置好的YARN配置文件拷贝至slaveX,也就是拷贝到其他服务器上:
cat ~/data/4/machines
for x in `cat ~/data/4/machines` ; do echo $x ; scp /usr/cstor/hadoop/etc/hadoop/yarn-site.xml $x:/usr/cstor/hadoop/etc/hadoop/ ; done;
(四)统一启动YARN
确认已配置slaves文件,在master机器上查看:
cat /usr/cstor/hadoop/etc/hadoop/slaves
YARN配置无误,统一启动YARN:
/usr/cstor/hadoop/sbin/start-yarn.sh
(五)验证YARN启动成功
分别在三台虚拟机上输入jps查看YARN服务是否已启动:
jps
在master上看到类似的如下信息:
这表明在master节点成功启动ResourceManager,它负责整个集群的资源管理分配,是一个全局的资源管理系统。
而在slave1、slave2上看到类似的如下信息:
NodeManager是每个节点上的资源和任务管理器,它是管理这台机器的代理,负责该节点程序的运行,以及该节点资源的管理和监控。YARN群每个节点都运行一个NodeManager。
六、实验结果
1. 查看Java进程
在master上看到类似的如下信息:
而在slave1、slave2上看到类似的如下信息:
2. 查看Web界面
在当前的Windows机器上打开浏览器,地址栏输入master的IP和端口号8088(例:10.1.1.7:8088),即可在Web界面看到YARN相关信息。
七、实验心得
本次YARN框架实验让我对YARN作为Hadoop生态中的资源管理器有了更深入的理解。通过亲手搭建YARN分布式集群,我不仅掌握了YARN的基本架构和配置方法,还学会了如何使用YARN集群提交简单的任务,并观察任务的执行过程。
在实验过程中,我遇到了不少挑战,比如配置文件的编辑和服务的启动等。但正是这些挑战,让我更加深刻地体会到了理论与实践的差距,也激发了我不断学习和探索的动力。通过反复尝试和调整,我逐渐克服了这些困难,成功搭建起了YARN集群,并顺利提交了任务。
在验证YARN启动成功的环节,我通过查看Java进程和Web界面,深刻感受到了YARN集群的强大功能和灵活性。ResourceManager和NodeManager的协同工作,使得整个集群的资源得到了高效的管理和利用。
总的来说,这次实验是一次非常宝贵的经历。它不仅让我巩固了所学知识,还锻炼了我的动手能力和解决问题的能力。同时,我也深刻认识到了自己在实践操作方面的不足,为今后的学习和实践指明了方向。我相信,在未来的日子里,我会更加努力地学习和实践,不断提升自己的专业素养和实践能力。
原文地址:https://blog.csdn.net/Morse_Chen/article/details/143250932
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!