secondary namenode

NameNode职责是管理元数据信息,DataNode的职责是负责数据具体存储,那么SecondaryNameNode的作用是什么?对很多初学者来说是非常迷惑的。它为什么会出现在HDFS中。从它的名字上看,它给人的感觉就像是NameNode的备份。但它实际上却不是。

大家猜想一下,当HDFS集群运行一段事件后,就会出现下面一些问题:

ledit logs文件会变的很大,怎么去管理这个文件是一个挑战。

lNameNode重启会花费很长时间,因为有很多改动要合并到fsimage文件上。

l如果NameNode挂掉了,那就丢失了一些改动。因为此时的fsimage文件非常旧。

因此为了克服这个问题,我们需要一个易于管理的机制来帮助我们减小edit logs文件的大小和得到一个最新的fsimage文件,这样也会减小在NameNode上的压力。这跟Windows的恢复点是非常像的,Windows的恢复点机制允许我们对OS进行快照,这样当系统发生问题时,我们能够回滚到最新的一次恢复点上。

SecondaryNameNode就是来帮助解决上述问题的,它的职责是合并NameNode的edit logs到fsimage文件中。

Checkpoint

每达到触发条件,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge(这个过程称为checkpoint),如下图所示:

Checkpoint详细步骤

lNameNode管理着元数据信息,其中有两类持久化元数据文件:edits操作日志文件和fsimage元数据镜像文件。新的操作日志不会立即与fsimage进行合并,也不会刷到NameNode的内存中,而是会先写到edits中(因为合并需要消耗大量的资源),操作成功之后更新至内存。

l有dfs.namenode.checkpoint.period和dfs.namenode.checkpoint.txns 两个配置,只要达到这两个条件任何一个,secondarynamenode就会执行checkpoint的操作。

l当触发checkpoint操作时,NameNode会生成一个新的edits即上图中的edits.new文件,同时SecondaryNameNode会将edits文件和fsimage复制到本地(HTTP GET方式)。

lsecondarynamenode将下载下来的fsimage载入到内存,然后一条一条地执行edits文件中的各项更新操作,使得内存中的fsimage保存最新,这个过程就是edits和fsimage文件合并,生成一个新的fsimage文件即上图中的Fsimage.ckpt文件。

lsecondarynamenode将新生成的Fsimage.ckpt文件复制到NameNode节点。

l在NameNode节点的edits.new文件和Fsimage.ckpt文件会替换掉原来的edits文件和fsimage文件,至此刚好是一个轮回,即在NameNode中又是edits和fsimage文件。

l等待下一次checkpoint触发SecondaryNameNode进行工作,一直这样循环操作。

Checkpoint触发条件

Checkpoint操作受两个参数控制,可以通过core-site.xml进行配置:

<property>

<name> dfs.namenode.checkpoint.period</name>

<value>3600</value>

<description>

两次连续的checkpoint之间的时间间隔。默认1小时

</description>

</property>

<property>

<name>dfs.namenode.checkpoint.txns</name>

<value>1000000</value>

<description>

最大的没有执行checkpoint事务的数量,满足将强制执行紧急checkpoint,即使尚未达到检查点周期。默认设置为100万。

</description>

</property>

从上面的描述我们可以看出,SecondaryNamenode根本就不是Namenode的一个热备,其只是将fsimage和edits合并。其拥有的fsimage不是最新的,因为在他从NameNode下载fsimage和edits文件时候,新的更新操作已经写到edit.new文件中去了。而这些更新在SecondaryNamenode是没有同步到的!当然,如果NameNode中的fsimage真的出问题了,还是可以用SecondaryNamenode中的fsimage替换一下NameNode上的fsimage,虽然已经不是最新的fsimage,但是我们可以将损失减小到最少!

secondary namenode 检查点相关推荐

  1. Secondary NameNode:它究竟有什么作用?(转自:http://blog.csdn.net/xh16319/article/details/31375197)

    前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系.很多人都认为,Secondary NameNode是NameNode的备份,是为了防止 ...

  2. 简明扼要的HDFS元数据管理机制描述(NameNode和Secondary NameNode工作机制)

    目录 一.思考: NameNode中的元数据是存储在哪里? 二.NameNode和Secondary NameNode工作机制 三.Fsimage和Edits概念 一.思考: NameNode中的元数 ...

  3. Hadoop中的Namenode、Datanode和Secondary Namenode

    1.namenode Namenode 管理着文件系统的Namespace.它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata),比如命名空间 ...

  4. 模拟namenode挂掉利用secondary namenode恢复

    测试机器: 10.0.50.144  master  (namenode,datanode) 10.0.50.145  node1    (datanode) 10.0.50.146  node2   ...

  5. Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明

    目录 前言: 1.NameNode的工作机制 2.DataNode的工作机制 3.Secondary Namenode的Check point机制 目录 前言: 在说明checkpoint机制之前,先 ...

  6. Secondary NameNode和Standby NameNde的区别

    Secondary NameNode: HDFS单NameNode节点的情况下(即非高可用HA),Secondary NameNode负责每隔一段时间将旧的fsimage文件和edits log文件m ...

  7. Hadoop——使用secondary namenode数据恢复namenode

    secondary namenode会定期将fsimage和edits从namenode上拉取进行合并,且在在secondary nemenode上有副本,当namenode节点损坏后,我们可以通过这 ...

  8. NameNode检查点状态报警:文件系统检查点已有 1 天,2 小时,23 分钟

    今天发现CDH Hadoop集群的NameNode显示红色报警: 检查点状态 文件系统检查点已有 1 天,2 小时,23 分钟.占配置检查点期限 1 小时的 2,639.08%. 临界阈值:400.0 ...

  9. 大数据之-Hadoop之HDFS_NameNode和Secondary NameNode工作机制_通过文件的增删改查说明---大数据之hadoop工作笔记0070

    然后我们再来说一下,hadoop的集群中的namenode节点的工作原理. 1.我们先来大体的了解一下,如果有客户端要来上传文件,这个过程,会先访问namenode,给namenode节点发送请求 2 ...

  10. CDH平台部署规划方案

    此方案包含部分实施要点,作为部署实施参考.主要针对RHEL/Centos7.x系统,其他系统可能会有不同. 主机配置章节包含了部分针对Hadoop的操作系统优化. 服务 版本 操作系统 CentOS ...

最新文章

  1. “移花接木”偷换广告:HTTPS劫匪木马每天打劫200万次网络访问
  2. 寻找网页设计灵感的200佳网站推荐(系列二)
  3. Java工程师的成长路线图是什么?
  4. 打开正经图片,你可能会看到一张黄图,这种造假方法能同时骗过AI和人眼
  5. 有100名考生参加C语言测验,全国计算机一级考试模拟试题及答案(1-100)
  6. Day 13: Dropwizard —— 非常棒的Java REST服务器栈
  7. zabbix的安装监控windows,linux操作流程
  8. 文本多标签分类python_Scikitlearn多标签分类
  9. 方法的返回值类型是object_JavaScript中如何判断类型
  10. 小学生计算机课堂实践的重要性,浅谈小学信息技术教育重要性.doc
  11. 设计模式---桥接模式
  12. Noip模拟题解题报告
  13. 音频杂音问题_OBS直播出现杂音或者电流声、没声音或者调大音量等操作
  14. js之数组打印看到长度和实际长度不同(浅拷贝)
  15. 读书笔记:《产品经理手册》(第4版)
  16. 测试用例(等价类法、边界值法、因果图法、判定表法、场景法、正交试验法、功能图法)
  17. processing 写的规律图形运动
  18. c语言 一帮一题目,【精品资料】大学优秀学子风采录.doc
  19. 高效工程师系列(一) 如何找到一个利于自己成长的环境
  20. UE4关于材质的几个小技巧

热门文章

  1. 拍牌(沪牌)软件,开源全部代码。有精力可以自己研究然后自用拍牌
  2. 支付宝小程序下单支付接口:40004 ACQ.INVALID_PARAMETER
  3. Syntax Error: Error: No ESLint configuration found Syntax Error: TypeError: eslint.CLIEngine i
  4. 关于环境光、漫反射、镜面反射
  5. 高淇python400集课堂笔记_2020六年级上第十七课《古诗三首》手抄笔记及图文讲解...
  6. 腾讯笔试题——java题总结无答案
  7. ios保存gif到相册_iOS如何保存下载GIF图片
  8. canvas生成gif图
  9. 学习AngularJS有这一篇就好了
  10. jmeter生成接口测试报告