HDFS的SecondaryNameNode

5 篇文章 0 订阅

HDFS

HDFS 采用Master/Slave的架构来存储数据,该架构主要由四个部分组成

  • HDFS Client
  • NameNode
  • DataNode
  • SecondaryNameNode

HDFS体系结构

HDFS体系结构

HDFS Client

文件切分,文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储
与 NameNode 交互,获取文件的位置信息
与 DataNode 交互,读取或者写入数据
Client 提供一些命令来管理 HDFS,比如启动或者关闭HDFS
Client 可以通过一些命令来访问 HDFS

NameNode

master,一个管理者,不实际存储数据
管理 HDFS 的名称空间,维护着文件系统树以及整个树的所有文件和目录(fsimage+edits)
管理数据块(Block)映射信息
配置副本策略
处理客户端读写请求

DataNode

Slave,NameNode 下达命令,DataNode 执行实际的操作
存储实际的数据块
执行数据块的读/写操作

SecondaryNameNode

辅助NameNode,分担其工作量
定期合并fsimage和edits,并推送给NameNode,紧急情况下,可辅助恢复NameNode

Fsimage和edits合并

Fsimage文件包含整个文件系统所有的文件和目录,是文件系统元数据的持久化检查点,当NameNode重启后都需载入fsimage进入内存,恢复到某个检查点,再执行检查点后的编辑日志,进行重建。

edits是编辑日志文件,记录检查点后所有文件等信息的改动

Fsimage和Edits合并过程?

1 secondarynamenode周期性通过edits文件大小,当达到合并的阈值后,Namenode停止使用 edits文件,并生成一个新的临时edits.new文件

2 secondarynamenode通过http的get方式获取namenode节点上的edits和fsimage文件

3 secondarynamenode将fsimage载入内存并逐一执行edits文件中的操作

4 执行完毕后,生成fsimages.ckpt,会向namenode发送http请求,通知namenode来获取fsimage.ckpt文件

5 NameNode更新fsimage文件中的记录检查点执行时间,改名为fsimage文件

6 edits.new文件更名为edits文件

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值