设为首页 加入收藏

TOP

浅析HADOOP启动过程及NN\DN\SNN节点
2019-01-03 00:40:04 】 浏览:39
Tags:浅析 HADOOP 启动 过程 NNDNSNN节点

学习HADOOP有一段时间,先总结一下HADOOP中涉及到的NameNode,SecondNameNode和DataNode节点的概念和作用。

首先要明白HADOOP分布式框架是一种主-从节点的架构形式(如下图所示),NameNode所在节点是主节点,DataNode节点是分节点,一个cluster中一般只有一个NameNode节点(Federation 联邦制架构除外),而SecondNameNode是用于辅助Name Node节点而存在的(要明白SNN不是NN的备份,与HA机制中Standy节点的概念不同,关于HADOOP中HA的概念请查看后续博文)。



NameNode节点中用于管理文件系统的命名空间(namespace),包括文件系统结构树(filesystem tree)、所有文件的元数据(metadata)。这些信息以fsimage和edit log的形式永久的保存在本地磁盘中;fsimage记录了所有文件和目录。edit记录所有操作,是增量信息。NameNode同时也知道某个文件的block在哪个节点上(即NN节点中存储了block与DN的map映射关系),但NN不存储block locations,块位置信息在每次启动的时候由DN节点发送报告并重建。

DataNode节点是实际存储数据的地方。DN节点通过心跳机制(heartbeat)向NN汇报健康状态(默认每三秒发送一次心跳信息);同时默认每小时向NN发送块报告(block report)。

NN节点在启动的时候要读取磁盘中的fsimage文件和大量的edits文件,会消耗大量的时间,导致启动时间极长。同时,NN节点也存在单点故障问题。如果一个集群中NN节点受损,则整个集群的所有信息将丢失,因为所有的读、写操作都先通过客户端client与NN节点通信才能去DN读取文件(具体读写操作过程请看后序博文)。介于这两个问题,一个应对方式就是运行一个辅助的NameNode,即SecondNameNode节点。

SNN节点的主要作用是定期的将Namespace镜像与操作日志文件(edit log)合并,以防止操作日志文件(edit log)变得过大。通常,Secondary Namenode运行在一个单独的物理机上,因为合并操作需要占用大量的CPU时间以及和Namenode相当的内存。辅助Namenode保存着合并后的Namespace镜像的一个备份,万一哪天Namenode宕机了,这个备份就可以用上了。SNN的运行过程如下图:


具体过程(摘自HADOOP OPERATIONS):






】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇macOS Sierra版本下Hadoop(2.7.3.. 下一篇CentOS 7安装Hadoop

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目