• 目录

    • 前言:
    • 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机制如下图所示:

  1. 客户端发送更新元数据的请求。
  2. namenode在内存中更新元数据。
  3. edits记录更新的操作日志
  4. namenode滚动当前正在写的edits。
  5. 将生成的fsimage和edtis下载到secender namenode.
  6. 将下载到secender namenode的fsimage和edtis放入内存进行合并。
  7. 合并更新后的元数据dump成新的image文件
  8. 然后secender namenode请求namenode是否需要checkpoint
  9. 如果需要就将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工作机制说明相关推荐

  1. namenode和datanode工作机制_HDFS详解一:namenode、datanode工作原理

    1. 概述HDFS集群分为两大角色:NameNode.DataNode(Secondary NameNode) NameNode负责管理整个文件系统的元数据,记录存放在哪些datanode中,以及存放 ...

  2. Hadoop之DataNode工作机制

    Hadoop之DataNode工作机制 目录 DataNode工作机制 数据完整性 掉线时限参数设置 1. DataNode工作机制 DataNode工作机制如下图 一个数据块在DataNode上以文 ...

  3. namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  4. namenode和datanode工作机制_HDFS的namenode和datanode详解

    一.概述 HDFS集群以Master-Slave模式运行,主要有两类节点:一个Namenode(即Master)和多个Datanode(即Slave). HDFS Architecture: 二.Na ...

  5. namenode和datanode工作机制_NameNode与DataNode的工作原理剖析

    NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 1>.客户端通过Distributed FileSys ...

  6. Hadoop框架:DataNode工作机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.工作机制 1.基础描述 DataNode上数据块以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是数据块元数据包括长度.校验.时 ...

  7. Hadoop_10_HDFS 的 DataNode工作机制

    1.DataNode的工作机制: 1.DataNode工作职责:存储管理用户的文件块数据  定期向namenode汇报自身所持有的block信息(通过心跳信息上报) (这点很重要,因为,当集群中发生某 ...

  8. Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制

    目录 前言 1. Namenode元数据管理 1.1 元数据是什么 1.2 元数据管理概述 1.2.1 内存元数据 1.2.2 磁盘元数据 1.2.2.1 fsimage内存镜像文件 1.2.2.2 ...

  9. Hadoop之NameNode和SecondaryNameNode工作机制详解

    Hadoop之NameNode和SecondaryNameNode工作机制详解 NN和2NN工作机制 NN和2NN工作机制详解 Fsimage和Edits解析 checkpoint时间设置 1. NN ...

最新文章

  1. 笔记本电脑真香,包邮送一台!
  2. 用于高亮反光零件缺陷的自动视觉检测系统
  3. openresty require报错
  4. 实验6Linux系统开发环境,哈工大嵌入式操作系统课件—6 Linux开发环境1-linux基.ppt...
  5. C# System.Runtime.InteropServices 相关学习总结
  6. Exynos 4412启动过程(群聊笔记记录)
  7. Python列表操作:统计列表中的重复项出现的次数的方法,不懂也要知道的python知识
  8. html js 如何判断页面是第一次访问还是重复刷新访问,使用JS判断页面是首次被加载还是刷新...
  9. 计算机组成结构IR,计算机组成与体系结构试题
  10. css_01_承接部分html+css快速入门
  11. php7垃圾回收机制l_PHP7 垃圾回收机制(GC)解析
  12. LwIP-Win32试用笔记
  13. 差分输出和单端输出的区别(转载)
  14. 全球开发者调查:JavaScript 成最爱,还最喜欢用 React
  15. 关于苹果与摄影的事。
  16. js基础-13-常见DOM操作
  17. 计算机软件相关的优秀基金,计算机软件研究所
  18. 霍尔编码器和电机驱动L298N
  19. 《分布式机器学习:算法、理论与实践》
  20. kubernetes(k8s)安装metrics-server实现资源使用情况监控

热门文章

  1. Docker logs 查看实时日志(日志最后的N行、某刻后日志)
  2. linux下的静态库与动态库
  3. java面向对象之父类的引用指向子类的对象
  4. CentOS(八)--crontab命令的使用方法
  5. [转载]聊一聊人员培养
  6. Windows 8 C++/CX字符串
  7. python读取excel
  8. C++11 tuple的使用
  9. 【学神-RHEL7】1-3-Linux基本命令和配置服务器来电后自动开机
  10. Linux下ejabberd安装配置