自学内容网 自学内容网

【大数据技术基础 | 实验十三】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)!