Hadoop的几种运行模式

浏览: 12386

学院视频链接:https://edu.hellobi.com/course/93/play/lesson/1400

1、Hadoop集群

Master:主节点,对Hadoop来说,运行着NameNode、ResourceManager服务进程 
Slave:从节点,对Hadoop来说,运行着DataNode、NodeManager服务进程

我们以HDFS的两个服务进程为例来说明: 
NameNode运行于主节点之上,也就是被称为Master的节点,负责记录各个数据块的存储空间(NameSpace),与DataNode进行通信,获取其健康状态信息,并根据决策算法将数据分发到某些节点。 
DataNode运行于从节点之上,也就是被称为Slave的节点,负责实际数据的存储,与NameNode进行通信,将其所在节点的存储状态汇报给NameNode,以供其决策。

一个HDFS集群包含一个单独的Master节点和多个Slave节点,我们要强调一下,这里所说的单独的Master节点并不是一个机器或服务器,而是指的逻辑意义上的一个Master组件,它具体可以是1或2台物理服务器,而Slave节点就是指的Slave服务器。可以这么说,由一台Master服务器所架设的NameNode,称之为单NameNode集群,两台Master服务器架设成的NameNode,称之为双NameNode集群,通常,所有的这些机器、或服务器都是普通的Linux机器,在这些Linux服务器上运行着用户级别(user-level)的服务进程。

接下来要介绍3中Hadoop的运行模式,分别是单机模式、伪分布模式、分布式。

首先来看最简单的单机模式,其实就是把上面讲到的这些服务进程运行在一个台机器上,并且文件系统也直接采用本地文件系统,也就是说,单机模式的Hadoop没有分布式文件系统,而是直接读写本地文件,这样一来,无论是在存储上,还是在计算时,都是由单机完成。所以严格意义上来讲,这样的Hadoop运行模式不能称之为集群,而且单机模式主要用于实验。

接下来看看伪分布式模式,之所以成为伪分布式,而不是真正的分布式,是因为伪分布式模式仍然是由一台机器实现的,它通过一个机器上不同的Java进程来模拟分布式中不同节点上的服务进程,这种情况下将文件系统设置成分布式的文件系统,这样即使是一台机器,也可以看成是逻辑上的分布式。例如,我们可以在同一台机器上运行上面讲到的NameNode、DataNode,也就是此机器既管理存储空间,也实际存储数据,同时还运行ResourceManager、NodeManager,也就是此机器既完负责资源调度,也负责作业调度。

最后是真正的分布式模式,其实很简单,就是讲上面讲到的伪分布式当中运行的一些服务进程放到另外的一些机器上去运行,例如我们把DataNode和NodeManager放到多个从节点(从服务器)上去运行。就实现了一个真正的分布式模式的Hadoop集群。

建议初学者做实验时在本机(若Windows)搭建一个Linux虚拟机(可以用VMWare Workstations)用来做伪分布式模式,或者直接在Mac上搭建伪分布式模式。

推荐 9
本文由 MarsJ 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

请问老师,提及目前版本实现多个NN并存的机制,原先在线的NN如果挂掉后,会有另一个备份的NN替换掉原来的在线NN。这样的话,是否可以解决NN挂掉的问题?但是NN应该是有限的,如果最后一个NN挂掉了,怎么处理?期待老师的解答。谢谢!

要回复文章请先登录注册