Hadoop HDFS NameNode
介绍 :
- FsImage : 磁盘中备份元数据
- Edits : 元数据变化时,会追加操作
- SecondaryNamenode : 定期合并 FsImage 和 Edits
解决点 :
- FsImage : 避免元数据丢失
- Edits : 提高更新元数据效率
- SecondaryNamenode : 避免 Edits 文件过大 , 导致元数据恢复较长
工作机制
NameNode 机制 :
- 第一次启动 , 对 NameNode 格式化后, 创建 Fsimage 和 Edits 文件 ; 当非第一次启动,就加载编辑日志和镜像文件到内存
- 客户端请求对元数据进行增删改
- NameNode 记录操作日志 (Edits),更新滚动日志
- NameNode 在内存中对元数据进行增删改
Secondary NameNode 机制 :
- Secondary NameNode 询问 NameNode 是否要 CheckPoint。 直接带回 NameNode 是否检查结果
- Secondary NameNode 请求执行 CheckPoint
- NameNode 滚动正在写的 Edits 日志
- 将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode
- Secondary NameNode 加载编辑日志和镜像文件到内存,并合并
- 生成新的镜像文件
fsimage.chkpoint
- 拷贝 fsimage.chkpoint 到 NameNode
- NameNode 将
fsimage.chkpoint
重新命名成 fsimage
代码流程 :
Fsimage/Edits
NameNode 格式化后,Fsimage ,Edits 会在
.../hadoop-3.1.3/data/dfs/name/current
下
- seen_txid : 最后个edits_ 的数字
文件如下 :
查看 Fsimage 内容 :
hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径
hdfs oiv -p Delimited -i fsimage_xxxx -o fsimage_xxx.txt
目录路径 副本数 修改时间 访问时间 首选块大小 块的数量 文件大小 名称配额 空间配额 权限 用户 用户组
Path Replication ModificationTime AccessTime PreferredBlockSize BlocksCount FileSize NSQUOTA DSQUOTA Permission UserName GroupName
/ 02022-05-19 14:47 1970-01-01 08:00 0009223372036854775807 -1 drwxr-xr-x hdfs supergroup
/tmp 02022-05-19 09:10 1970-01-01 08:00 000 -1 -1 drwxrwxrwx hdfs supergroup
/tmp/hadoop-yarn 02022-05-06 10:14 1970-01-01 08:00 000 -1 -1 drwxrwxrwx hdfs supergroup
看 edits 内容 :
hdfs oev -p Delimited -i edits_xxx-xxx -o edits_xxx.txt
CheckPoint
hdfs-default.xml :
<property><name>dfs.namenode.checkpoint.period</name><value>3600s</value><description>默认: SecondaryNameNode 每一小时执行一次</description></property><property><name>dfs.namenode.checkpoint.txns</name><value>1000000</value><description>操作动作次数</description></property><property><name>dfs.namenode.checkpoint.check.period</name><value>60s</value><description> 1 分钟检查一次操作次数</description></property>
本文转载自: https://blog.csdn.net/qq_44226094/article/details/130209518
版权归原作者 cpuCode 所有, 如有侵权,请联系我们删除。
版权归原作者 cpuCode 所有, 如有侵权,请联系我们删除。