HDFS(三)-----NameNode与Secondary NameNode

 

-----尚硅谷学习笔记整理

一、NameNode的元数据存储在哪里?

1、NameNode的元数据如果存在内存中,如果断电,会造成数据丢失,所以引入-----FsImage

2、然后如果元数据更新频率过多,效率过低,而且断电依然会造成数据丢失,所以引用----Edit文件(追加效率很高,每当元数据更新,修改元数据)

3、这样,NameNode就必须经常进行FsImage和Edit文件的合并,这样效率过低,所以引用了Secondary NameNode辅助NameNode进行备份机制

二、NameNode的工作机制

1、第一阶段:NameNode启动

1)第一次启动NameNode格式化后,创建Fsimage和Edits文件,如果不是第一次启动,直接加载编辑日志和镜像文件到内存

2)客户端对元数据进行增删改的请求

3)NameNode记录操作日志,更新滚动日志

4)NameNode在内存中对数据进行增删改

2、第二阶段:Secondary NameNode工作

1)Secondary NameNode 询问NameNode是否需要CheckPoint,直接带回NameNode是否检查结果

2)Secondary NameNode 请求执行CheckPoint

3)NameNode 滚动正在写的Edits日志

4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode

5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并

6)生成新的镜像文件Fsimage.chkpoint

7)拷贝fsimage.chkpoint 到NameNode

8)NameNode 将fsimage.chkpoint 重命名成fsimage

三、Fsimage和Edits

1、oiv查看Fsimage命令

hdfs oiv -p 文件类型 -i 镜像文件 -o 转换成文件输出路径

2、oev查看Edits文件

hdfs oev -p 文件类型 -i 编辑日志 -o 转换成文件输出路径

3、CheckPoint时间设置

4、NameNode故障处理机制

1)将Secondary NameNode 文件拷贝到NameNode存储数据的目录

具体步骤:kill掉NameNode进程、删除NameNode存储数据、拷贝Secondary NameNode的数据到NameNode,重启NameNode

2)使用-importCheckpoint选项启动NameNode守护进程,从而将secondary NameNode数据拷贝到Name Node 目录中

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值