0


Hadoop HDFS NameNode

Hadoop HDFS NameNode

介绍 :

  • FsImage : 磁盘中备份元数据
  • Edits : 元数据变化时,会追加操作
  • SecondaryNamenode : 定期合并 FsImage 和 Edits

解决点 :

  • FsImage : 避免元数据丢失
  • Edits : 提高更新元数据效率
  • SecondaryNamenode : 避免 Edits 文件过大 , 导致元数据恢复较长

工作机制

NameNode 机制 :

  1. 第一次启动 , 对 NameNode 格式化后, 创建 Fsimage 和 Edits 文件 ; 当非第一次启动,就加载编辑日志和镜像文件到内存
  2. 客户端请求对元数据进行增删改
  3. NameNode 记录操作日志 (Edits),更新滚动日志
  4. NameNode 在内存中对元数据进行增删改

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

代码流程 :
image.png

Fsimage/Edits

NameNode 格式化后,Fsimage ,Edits 会在

.../hadoop-3.1.3/data/dfs/name/current

  • seen_txid : 最后个edits_ 的数字

文件如下 :
image.png

查看 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 所有, 如有侵权,请联系我们删除。

“Hadoop HDFS NameNode”的评论:

还没有评论