欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Yarn简单分布式集群搭建

程序员文章站 2022-05-07 18:56:45
...

Yarn简单分布式集群搭建

前言

上篇文章介绍了如何搭建简单分布式的HDFS集群,那么HDFS说到底仅仅是一个文件系统,Hadoop另一个核心模块MapReduce(计算框架或编程模型)就是对HDFS中存储的数据进行计算,既然要进行运算就必须要有CPU和内存,那么对于MapReduce的计算如何给它分配CPU和内存呢?这就需要一个统一资源调度器来对来对hadoop集群中的资源进行统一调度。因此Hadoop中由引入了Yarn,来完成资源调度任务。

一、MapReduce工作原理

MapReduce是一个计算框架或者编程模型,它由两部分组成:Map进行数据切分后的局部运算,Reduce进行Map局部计算完成后的整合运算,示意图如下
Yarn简单分布式集群搭建
由上面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集群搭建

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

下图表明已经部署完成我们的规划
Yarn简单分布式集群搭建
Yarn简单分布式集群搭建
Yarn简单分布式集群搭建

4、HDFS集群和Yarn集群的可视化

HDFS集群的可视化是NameNode所在节点机器的IP地址加端口号:50070
Yarn简单分布式集群搭建
Yarn集群的可视化是ResourceManager所在节点机器的IP地址加端口号:8088
在这里插入图片描述