Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明
- 目录
- 前言:
- 1、NameNode的工作机制
- 2、DataNode的工作机制
- 3、Secondary Namenode的Check point机制
目录
前言:
在说明checkpoint机制之前,先要了解下namenode、datanode的一些功能和职责。
1、NameNode的工作机制
问题场景:
1、集群启动后,可以查看文件,但是上传文件时报错,打开web页面可看到namenode正处于safemode状态,怎么处理?(safemode是由于当前的namenode和大部分的datanode未建立完全的链接<即namenode不清楚有些数据的存储位置造成的>)
2、Namenode服务器的磁盘故障导致namenode宕机,如何挽救集群及数据?(多种方法:1、早起设置集群时配置HA机制。2、在配置文件hdfs.site中将dfs.namenode.name.dir属性配置多个目录,就相当于对namenode数据做了多份备份,这样做的好处是当其中一个目录损坏了,也不会影响到Hadoop的元数据,特别是当其中一个目录是NFS(网络文件系统Network File System,NFS)之上,即使你这台机器损坏了,元数据也得到保存。)
3、Namenode是否可以有多个(是,后面问题根据实际情况来具体分析)?namenode内存要配置多大?namenode跟集群数据存储能力有关系吗?
4、文件的blocksize究竟调大好还是调小好?
……
诸如此类问题的回答,都需要基于对namenode自身的工作原理的深刻理解。(目前的话个人件建议只需要了解以下的主要内容就行了,后续如果遇到问题再深入了解相关内容)
1. namenode的职责:
负责客户端请求的响应;
元数据的管理(查询,修改);
2. 对元数据管理:
namenode对数据的管理采用了三种存储形式:
A、内存元数据(NameSystem):内存中有一份完整的元数据(内存meta data)。
B、磁盘元数据镜像文件:磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中)。
C、数据操作日志文件(可通过日志运算出元数据):用于衔接内存metadata和持久化元数据镜像fsimage之间的操作日志(edits文件)。
注:当客户端对hdfs中的文件进行新增或者修改操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,相应的元数据会更新到内存meta.data中。
2、DataNode的工作机制
问题场景:
1、集群容量不够,怎么扩容?
2、如果有一些datanode宕机,该怎么办?
3、datanode明明已启动,但是集群中的可用datanode列表中就是没有,怎么办?
以上这类问题的解答,有赖于对datanode工作机制的深刻理解(目前的话个人件建议只需要了解以下的主要内容就行了,后续如果遇到问题再深入了解相关内容)
1、Datanode工作职责:
存储管理用户的文件块数据
定期向namenode汇报自身所持有的block信息(通过心跳信息上报)
(这点很重要,因为,当集群中发生某些block副本失效时,集群如何恢复block初始副本数量的问题)
3、Secondary Namenode的Check point机制
了解了以上知识,接下来再来理解元数据的checkpoint机制是怎么一回事的时候就很容易了。
什么叫checkpoint?
每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge(这个过程称为checkpoint)
checkpoint机制如下图所示:
- 客户端发送更新元数据的请求。
- namenode在内存中更新元数据。
- edits记录更新的操作日志
- namenode滚动当前正在写的edits。
- 将生成的fsimage和edtis下载到secender namenode.
- 将下载到secender namenode的fsimage和edtis放入内存进行合并。
- 合并更新后的元数据dump成新的image文件
- 然后secender namenode请求namenode是否需要checkpoint
- 如果需要就将edtis正在写的那条日志进行滚动(即重复4步骤的操作)并将secender namenode生成的新的fsimage上传到namenode并重命名为fsimage。
checkpoint的附带作用
namenode和secondary namenode的工作目录存储结构完全相同,所以,当namenode故障退出需要重新恢复时,可以从secondary namenode的工作目录中将fsimage拷贝到namenode的工作目录,以恢复namenode的元数据。
最后重点陈述下Secondary Namenode与Namenode的HA机制的区别,有许多人认为Secondary Namenode其实就是namenode一个HA机制,其实不是这样的。Secondary Namenode相当于Namenode的一个热备份(比如电脑的一键还原),只是定期将合并的image文件通过checkpoint机制传给Namenode,并不具备HA机制中当namenode挂了之后直接接管namenode的能力。更深层来说,HA机制中备份的namenode是对namenode内存、edtis、image的实时的备份,而Secondary Namenode只是对image定时的备份。所以两者不是同一个东西。
Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明相关推荐
- namenode和datanode工作机制_HDFS详解一:namenode、datanode工作原理
1. 概述HDFS集群分为两大角色:NameNode.DataNode(Secondary NameNode) NameNode负责管理整个文件系统的元数据,记录存放在哪些datanode中,以及存放 ...
- Hadoop之DataNode工作机制
Hadoop之DataNode工作机制 目录 DataNode工作机制 数据完整性 掉线时限参数设置 1. DataNode工作机制 DataNode工作机制如下图 一个数据块在DataNode上以文 ...
- namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...
HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...
- namenode和datanode工作机制_HDFS的namenode和datanode详解
一.概述 HDFS集群以Master-Slave模式运行,主要有两类节点:一个Namenode(即Master)和多个Datanode(即Slave). HDFS Architecture: 二.Na ...
- namenode和datanode工作机制_NameNode与DataNode的工作原理剖析
NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 1>.客户端通过Distributed FileSys ...
- Hadoop框架:DataNode工作机制详解
本文源码:GitHub·点这里 || GitEE·点这里 一.工作机制 1.基础描述 DataNode上数据块以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是数据块元数据包括长度.校验.时 ...
- Hadoop_10_HDFS 的 DataNode工作机制
1.DataNode的工作机制: 1.DataNode工作职责:存储管理用户的文件块数据 定期向namenode汇报自身所持有的block信息(通过心跳信息上报) (这点很重要,因为,当集群中发生某 ...
- Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制
目录 前言 1. Namenode元数据管理 1.1 元数据是什么 1.2 元数据管理概述 1.2.1 内存元数据 1.2.2 磁盘元数据 1.2.2.1 fsimage内存镜像文件 1.2.2.2 ...
- Hadoop之NameNode和SecondaryNameNode工作机制详解
Hadoop之NameNode和SecondaryNameNode工作机制详解 NN和2NN工作机制 NN和2NN工作机制详解 Fsimage和Edits解析 checkpoint时间设置 1. NN ...
最新文章
- 笔记本电脑真香,包邮送一台!
- 用于高亮反光零件缺陷的自动视觉检测系统
- openresty require报错
- 实验6Linux系统开发环境,哈工大嵌入式操作系统课件—6 Linux开发环境1-linux基.ppt...
- C# System.Runtime.InteropServices 相关学习总结
- Exynos 4412启动过程(群聊笔记记录)
- Python列表操作:统计列表中的重复项出现的次数的方法,不懂也要知道的python知识
- html js 如何判断页面是第一次访问还是重复刷新访问,使用JS判断页面是首次被加载还是刷新...
- 计算机组成结构IR,计算机组成与体系结构试题
- css_01_承接部分html+css快速入门
- php7垃圾回收机制l_PHP7 垃圾回收机制(GC)解析
- LwIP-Win32试用笔记
- 差分输出和单端输出的区别(转载)
- 全球开发者调查:JavaScript 成最爱,还最喜欢用 React
- 关于苹果与摄影的事。
- js基础-13-常见DOM操作
- 计算机软件相关的优秀基金,计算机软件研究所
- 霍尔编码器和电机驱动L298N
- 《分布式机器学习:算法、理论与实践》
- kubernetes(k8s)安装metrics-server实现资源使用情况监控