SecondaryNamenode ----------持久化

SecondaryNamenode
对于持久化的理解:为保证元数据的安全,需要将数据存放在磁盘中----持久化
HDFS持久化主要是–SecondaryNamenode和NameNode将数据持久化,写入磁盘中

引言:
NameNode不能持久化的原因 :
可以做:需求小,占用内存小,不影响计算效率
不可做:NameNode本身工作已经多,可能会宕机。也会造成数据缺失

在NameNode中会存放两种文件,
1.edits.log 存放系统在运行过程产生的操作信息
2.fsimage 存放系统信息

持久化的过程
1.SecondaryNamenode会将NameNode中edits.log和fsimage,进行合并产生新的fsimage,将其写入磁盘。
2.NameNode还会继续生产新edits.log数据
3.NameNode会将SecondaryNamenode产生的新的fsimage拉取过来,再与edits.log继续存写数据
4.当NameNode满足一定的条件后,SecondaryNamenode又会继续拉取继续持久化。

NameNode持久化条件
超过时间3600S或edits的大小超过64M

故:NameNode持久化是将NameNode的元数据写入磁盘中进行存储,当NameNode挂了之后重启的时候,会去磁盘读取相应的元数据,恢复集群的状态

通常服务器需要持久化有两种情况
1.在持久化之前 服务器启动时,读取系统日志fsimage
2.在持久化之后 读取磁盘中的数据edits.log数据,恢复状态

NameNode与DataNode通信机制是—心跳机制(每个三秒,DataNode会向NameNode发送一次心跳,一分钟没有心跳,则认为DataNode挂掉)
服务器的安全模式
1.恢复系统状态
2.检查DataNode的信息
3.有问题的DataNode进行修复
1)、在传输过程中断电—数据丢失,故应提前预判进行相应的调整
2)、传输完成之后断电
集群恢复之后,NameNode会读取元数据,对状态进行回复
3)、当检查DataNode有问题,根据情况,是否上传新的文件

关于datanode会出现的问题:
假设 我们有三个从节点dn1 dn2 dn3 当上传block时 dn3挂掉了 nn 会从dn1 dn2 继续读取 而原来dn3 的部分
会 由 放置在 dn1 和 dn2 中的备份继续提供 ,如果传输到中途,dn3恢复了,这时nn也不会从dn3读取数据了,
因为 对于nn来说 dn3是一个全新的节点,也就是dn4,而且,dn4中也不具备dn3中的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值