关于大数据 secondaryNameNode 持久化的简单总结

1.数据需要存储
2.NameNode 掌握了一批元数据 什么是元数据呢 就是所谓的描述数据的数据,这些元数据是放在内存中的,我们要做的就是将这些元数据放到磁盘中,让他永久的保存下去
数据存储的几种方式
1.硬盘 特点:内存大 便宜 但是对于数据的处理比较慢
2.内存 特点:内存小 贵 但是对于数据的处理比较快

HDFS的主从架构
主节点 (Namenode)相当于老板
从节点 (Datanode)相当于员工
client 相当于秘书
主节点 的作用
1.掌控全局 管理从节点(Datanode)的信息 管理元数据 元数据就是描述数据的数据
2.接受client的请求 读写
3.与从节点 (Datanode)之间进行相应的通信
从节点 (Datanode)的作用
1.存储数据
2.存储完毕后返回信息给namenode主节点
3.接受client的任务安排

NameNode 是可以持久化的
但要求持久化的数据需求少 占用内存少
为什么不直接用NameNode去持久化的原因
1.NameNode本身负载量比较大 可能会在持久化的过程中宕机 造成宕机期间的数据丢失

持久化之前准备
在开启服务器 或者 集群时 NameNode中会自动生成两个文件

  1. edits.log 这个文件中存放的是系统在运行过程中所产生的操作信息 也就是所谓的各种事件的记录
  2. fsimage 这个文件中存放的是系统运行日志 就是所谓的任务管理器中的各种进程
    secondaryNameNode持久化过程
    1.secondaryNameNode将NameNode中生成的edits.logfsimage 文件剪切到自己身上,并将NameNode中生成的edits.log 和fsimage 文件合并成一个新的fsimage
    2.secondaryNameNode中通过的NameNode中的edits.log 和fsimage 文件合并的新的fsimage文件剪切后返回到NameNode在与NameNode中生成的新的edits.log文件进行合并 循环。
    :(在secondaryNameNode剪切NameNode中生成的edits.log 和fsimage 文件时,NameNode是不会停止的,还在不断生成edits.log文件
    :secondaryNameNode永远无法取代NameNode的位置 他只是NameNode的一个热备
    热备 就是 系统不停止 还能备份
    持久化触发的条件
    时间超过3600S (可调)
    NameNode中edits.log文件的大小超过64m (可调)

NameNode与datanode的通信机制
1.心跳机制
每隔三秒 DataNode会向NameNode发送一次心跳 ,如果超过一分钟没有发送 则认为DataNode死亡

安全模式

系统突然断电等意外条件突然关闭时,所做的保护

1.恢复系统在断电之前的所保存的状态
2.恢复后DataNode向NameNode发送心跳 确认是否存活

猜你喜欢

转载自blog.csdn.net/SqrsCbrOnly1/article/details/91490250