浅谈大数据持久化概念

SecondaryNamenode 持久化

什么是持久化

为了保证元数据的安全,将内存中的数据存放到磁盘中就是持久化。
元数据:描述数据的数据

为什么要使用持久化

当我们的集群因断电等特殊原因产生问题,数据丢失的时候,等重新开机时,可以去磁盘上读取元数据,把数据恢复到断电前的状态

NameNode不能进行持久化的原因

由于NameNode自身工作已经很多,有可能在持久化过程中宕机,所以不推荐使用NameNode去进行持久化

持久化的实现流程

在系统启动时会在内存中产生俩个文件:
edits.log 存放系统在运行过程中产生的操作信息
fsimage 存放系统信息

持久化的实现
开始运行时候,edits和fsimage会不断地产生信息,SecondaryNamenode会将俩个文件进行合并,组合成一个新的fsimage文件然后写入磁盘,写入磁盘之后新的fsimage文件会再次回到内存中,在合并和写入的过程中,也会有新的信息不断产生,然后会继续进行合并,循环下去。

持久化的触发条件

超过3600s或者edits文件超过64M

一个需要特别注意的点:当SecondaryNamenode合并时候,edits又超过64M,这个时候应该怎么办呢?

1.如果只是个别现象,再启动一个edits,里面会同时存在俩个edits,edits1和edits2,fsimage会先和1合并,然后合并2。
2.如果是常态的话,就需要对集群进行调整,调大edits的大小

如果发生断电数据丢失怎么办

持久化之前 —— 再次启动,读取系统日志
持久化之后 —— 读取磁盘中的数据

安全模式

持久化是安全模式中恢复数据的一种机制

1.恢复系统状态
2.检查DataNode的信息
3.对有问题的DataNode进行修复
1)在传输的过程中断电 数据丢失 如果数据特别重要,只能提前进行预判,进行相应的调整
2)在传输完成后断电 数据不会丢失 当我的集群重新恢复之后,NameNode会去读取元数据,然后进行恢复(内存)
3)如果DataNode出现问题 在DataNode恢复之后,如果新的任务,根据情况,确定是否将新的文件上传

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值