首页 > 其他 > 详细

hdfs fsimage和editlog

时间:2020-07-28 00:11:52      阅读:88      评论:0      收藏:0      [点我收藏+]

hdfs fsimage和editlog

fsimage,namenode的元数据镜像文件,保存在磁盘

editlog,namenode操作日志

fstime,最近一次的checkpoint时间

metadata,一个文件存储在哪些DataNode节点的哪些位置的元数据信息

datanode上存储文件名一般为blk……

技术分享图片

打开/usr/local/hadoop/etc/hadoop路径下的 hdfs-site.xml文件,查看其中的dfs.namenode.name.dir的配置值,并打开对应路径,就能看到

技术分享图片

其中FSImage文件则是不同时间的元数据检查点,记录了在对应时间节点下HDFS文件系统的目录和文件信息。

对于文件来说包括了数据块描述信息、修改时间、访问时间等;

对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。

上图中editlog_inprogress_0000000000000000002文件则代表此状态下fsimage已经加载到了编号为0000000000000000001的文件

经过部分操作后:

技术分享图片

假设editlog_inprogress文件的后缀编号为0000000000000091059,则代表启动HDFS的时候只需要读入edits_inprogress_0000000000000091059日志文件和fsimage-_0000000000000091058镜像文件。

当editlog越来越多,越来越大,在加载fsimage后就需要再加载editlog,就会影响启动的速度。因此fsimage和editlog在满足到达一定条件(一定时间或者一定的txns)后就会出发checkpoint机制进行合并。

合并步骤

1、SNN告诉NN滚动inprogress editlog文件,这样新的操作都会写到新的editlog文件,同事,NN更新seen_txid

2、SNN通过http get方式从NN获取最新的fsimage和editlog

3、SNN将fsimage加载到内存,并从editlog中读取每一次事务,应用到fsimage,这样就产生了一个新的fsimage

4、SNN将新的fsimage通过http put的方式发送到NN,NN将fsimage保存为临时fsimage.ckpt文件中

5、NN将fsimage.ckpt文件重命名,此完成了fsimage和editlog的同步

通过hdfs oiv -i fsimage_xxxxxxxxxxxxx指令就能查看fsimage文件内容

还可以用 hdfs oev -i edits_xxxxxxxxxxx -o xxx.xml导出editlog文件至xml文件进行查看

部分内容如下!
技术分享图片

hdfs fsimage和editlog

原文:https://www.cnblogs.com/Do-n/p/13387362.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!