6. hadoop系列之HDFS镜像文件Fsimage和编辑日志Edits详解

我们先了解下基本概念:

  • Fsimage文件:HDFS文件系统元数据的一个永久性检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息
  • Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中
  • seen_txid文件:保存最后一个edits_的数字
1. 镜像文件Fsimage详解
  • 我们先把DataNode容器停止,然后删除对应挂载的current目录,此步骤是为了解决namenode格式化后datanode无法启动(也可以直接修改namenode格式化后version中集群的id也可启动),如下图所示

  • 在namenode节点中执行
hdfs namenode -format
cd /hadoop/dfs/name/current
ls
cat version
cat seen_txid

  • 我们停止集群并重新启动,我在再次查看namenode发现多了edits_inprogress文件,并且datanode集群id与namenode格式化后集群id一致
docker-compose down
docker-compose up -d

  • 查看Fsimage文件
// 已xml格式处理fsimage_文件为fsimage.xml
# hdfs oiv -p XML -i fsimage_0000000000000000000 -o fsimage.xml
# cat fsimage.xml
2. 编辑日志Edits详解
// hdfs oev查看edits文件具体内容
# hdfs oev -p XML -i edits_inprogress_0000000000000000001 -o edits.xml
# cat edits.xml
  • 如果fsimage当前编号为fsimage_0000000000000000520,则说明edits编号小于等于520的文件已合并完成,后续合并只需合并大于该编号的
  • 根据之前的写流程我们知道edits_inprogress的文件编号始终为最大的

了解完后,fsimage与edits文件不知道你有没有想起与redis7中rdb与aof十分类似呢?
链接直达 18.Redis系列之AOF方式持久化

欢迎关注公众号算法小生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法小生Đ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值