看网上是这么写的,hdfs进行写操作的时候,NameNode会先把操作写到edits log里然后再保存到内存里,而不是直接写入内存里?请问为何要多此一举呢,如果直接把内存的数据合并到fsimage里不是更好?
难道是为了Secondary namenode合并方便,可是还是不太懂,球大神赐教。
图中有两个文件:
(1)fsimage:文件系统映射文件,也是元数据的镜像文件(磁盘中),存储某段时间namenode内存元数据信息。
(2)edits log:操作日志文件。
这种工作方式的特点:
(1)namenode始终在内存中存储元数据(metedata),使得“读操作”更加快、
(2)有“写请求”时,向edits文件写入日志,成功返回后才修改内存,并向客户端返回。
(3)fsimage文件为metedata的镜像,不会随时同步,与edits合并生成新的fsimage。