Hdfs之SecondaryNameNode

概述

  启动集群Hdfs(start-dfs.sh)之后,查看进程(jps)会在master节点上看到,除了namenode进程之外还会有个secondarynamenode进程,从字面上看,很多人会把他当做namenode的“二把手”,当做namenode的备份进程之类的,但实际上他与namenode担任的是不同的角色。

主要工作内容

  要说secondarynamnode的工作内容,需要回顾一下他的“伪兄弟”namenode的工作内容。
  在上一篇博客里写了,namenode的主要功能是管理文件系统的命名空间,namenode会把文件原信息保存到内存中来保障快速的交互速度,但是同时也会在磁盘中做持久化存储,本地磁盘中有两个文件:
  Fsimage:存储文件系统的命名空间,包含文件的映射、文件的属性信息,它是namenode在启动时的一个快照。
  edits:namonode启动后,存储日志信息的文件。
  namenode启动时,edits会包含着集群修改信息合并到fsimage当中,产生一个新的集群快照,但是一般生产环境汇总是不会经常重新启动namenode的,这就意味着edits文件中会保持很久的日志信息无法合并到fsimage文件生成新的集群快照,这样会产生几个问题:
  1. edits文件就会变得很大,
  2. 重启集群namenode会需要很长时间,
  3. 一旦namenode宕掉,集群是无法恢复到宕机之前的状态
  为了解决这个问题,master节点还会启动一个进程来协助namenode存储元数据—secondary namenode。那么它是怎么来实现这个功能的呢?

主要工作流程

  1. 周期性地从namenode上复制映像文件(fsimage)以及日志文件(edits);
  2. 合并生成新的fsimage文件;
  3. 保存到本地磁盘中并重新上传到namenode上;
  这样,一方面达到更新映像文件,缩短重启时间;另一方面edits文件始终保持在可控大小。

总结

  Secondary NameNode是文件系统设置的一个checkpoint,用来帮助NameNode快速高效的工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值