NameNode数据管理机制

NameNode是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求
文件包括:
①fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
②edits:操作日志文件。
③fstime:保存最近一次checkpoint的时间
以上这些文件是保存在linux的文件系统中.
NameNode的工作特点
1、客户端上传文件,NN首先往edits.log文件中记录数据操作日志。
2、客户端开始上传文件,完成后返回成功信息给NN,NN就在内存中写入这次上传操作的新产生的数据信息。
3、每当edits.log写满时需要将这段时间的新的原数据写到fsimage文件中去。Hadoop会维护一个fsimage文件,也就是namenodemetedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metedata的。
secondary namenode的工作流程:
1.secondary通知namenode切换edits文件
2.secondary从namenode获得fsimage和edits(通过http)
3.secondary将fsimage载入内存,然后开始合并edits
4.secondary将新的fsimage发回给namenode
5.namenode用新的fsimage替换旧的fsimage

触发checkpoint条件:
l、fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。
2、fs.checkpoint.size    规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。

发布了42 篇原创文章 · 获赞 5 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章