Hadoop中各节点的含义

1.Namenode
   目录的管理者,每一个集群都有一个,记录实时的数据变化,如果没有namenode,HDFS就无法工作,系统中的文件将会全部丢失,就无法将位于不同datanode上的文件快(blocks)重建文件。因此它的容错机制很有必要。

它主要负责:

接收用户的请求;
维护文件系统的目录结构;
管理文件与Block之间的练习;
2.Datanode
是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索。,并且定期向namenode发送他们所存储的块(block)的列表。

集群中的每个服务器都运行一个DataNode后台程序,这个后台程序负责把HDFS数据块读写到本地的文件系统。当需要通过客户端读/写某个 数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通 信,并且对相关的数据块进行读/写操作。

它主要负责:

存放数据;
文件被分割以Block的形式被存储在磁盘上;
 3.Secondarynode
SecondaryNameNode是一个用来监控HDFS状态的辅助后台程序。就想NameNode一样,每个集群都有一个SecondaryNameNode,并且部署在一个单独的服务器上。SecondaryNameNode不同于NameNode,它不接受或者记录任何实时的数据变化,但是,它会与NameNode进行通信,以便定期地保存HDFS元数据的快照。由于NameNode是单点的,通过SecondaryNameNode的快照功能,可以将NameNode的宕机时间和数据损失降低到最小。同时,如果NameNode发生问题,SecondaryNameNode可以及时地作为备用NameNode使用。

它主要将namenode image(fsimage)和Edit log合并的。

这两个文件的作用:

 fsimage包含Hadoop文件系统中的所有目录和文件idnode的序列化信息,其中对于文件包含了文件的修改时间、访问时间、块大小和组成一个文件块信息等。对于文件夹而言包含的信息主要有修改时间、访问控制权限等信息。而Edits文件主要是进行客户端对文件操作的记录,比如上传新文件等。并且edits文件会定期与fsimage文件进行合并操作。

当客户端执行写操作,则NameNode会在edit log记录下来,并在内存中保存一份文件系统的元数据。

要注意,fsimage文件是文件系统元数据的持久化检查点,不会在写操作后马上更新,这是因为fsimage的写入是非常缓慢的。

由于Edit log不断增长,在NameNode重启时,会造成长时间NameNode处于安全模式,不可用状态,是非常不符合Hadoop的设计初衷。所以要周期性合并Edit log,但是这个工作由NameNode来完成,会占用大量资源,这样就出现了Secondary NameNode,它可以进行image检查点的处理工作。步骤如下:

(1)SecondaryNameNode请求NameNode进行edit log的滚动(即创建一个新的edit log),将新的编辑操作记录到新生成的edit log文件;

(2)通过http get方式,读取NameNode上的fsimage和edits文件,到SecondaryNameNode上;

(3)读取fsimage到内存中,即加载fsimage到内存,然后执行edits中所有操作,并生成一个新的fsimage文件,即这个检查点被创建;

(4)通过http post方式,将新的fsimage文件传送到NameNode;

(5)NameNode使用新的fsimage替换原来的fsimage文件,让(1)创建的edits替代原来的edits文件;并且更新fsimage文件的检查点时间。

整个处理过程完成。

SecondaryNameNode的处理,是将fsimage和edites文件周期的合并,不会造成nameNode重启时造成长时间不可访问的情况。

4.Resourcemanager
(1)与客户端进行交互,处理来自于客户端的请求,如查询应用的运行情况等。

(2)启动和管理各个应用的ApplicationMaster,并且为ApplicationMaster申请第一个Container用于启动和在它运行失败时将它重新启动。

(3)管理NodeManager,接收来自NodeManager的资源和节点健康情况汇报,并向NodeManager下达管理资源命令,例如kill掉某个container。

(4)资源管理和调度,接收来自ApplicationMaster的资源申请,并且为其进行分配。这个是它的最重要的职能。

5.Nodemanager
NM是ResourceManager在每台机器上的代理,负责容器管理,并监控它们的资源使用情况,以及向ResourceManager/Scheduler提供资源使用报告。

总结: 
 (1)NameNode与ResourceManager分开部署(都是老大)

(2)NodeManager 也就是Resoucemanager 的“小弟”,它来做这事情,读取hdfs 上的数据,数据保存在datanode上,所以如果数据集群,datanode 与NodeManager ,一定要保存在同一个节点上

(3)Resoucemanager : 占用端口:8088   进行调度资源(老大),进行任务分配的,谁来做这个事情
--------------------- 
作者:Patience在努力 
来源:CSDN 
原文:https://blog.csdn.net/qq_37042789/article/details/81408736 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值