fsimage保存来最新的元数据检查点,包含来整个hdfs文件系统的全部目录和文件的信息。对于文件来讲包括了数据块描述信息,修改时间,访问时间等,对于目录老说包括修改时间,访问权限控制信息(目录所属用户,所在组)等。Fimage就是在某一时刻,整个hdfs的快照,就是这个时刻的hdfs上全部的文件块和目录,分别的状态,位于哪些个datanode,各自的权限,各自的副本个数。node
editlog主要是在Namenode已经启动状况下对hdfs进行的各类更新操做进行记录,hdfs客户端执行全部的写操做都会被记录到editlog中。客户端对hdfs全部的更新操做,好比说移动数据,或者删除数据,都会记录在editlog中。为了不editlog不断增大,secondary namenode 会周期性合并fsimage和deits 合并成新的fsimage新的操做记录会写入新的editlog中,这个周期能够本身设置(editlog到达必定大小或者定时)。blog
第一步:将hdfs更新记录写入一个新的文件--edit.new权限控制
第二步:将fsimage和editlog经过http协议发送至secondary namenodeit
第三步:将fsimage与editlog合并,生成一个新的文件--fsimage.ckpt。这步之因此在secondary namenode中进行,是由于比较耗时,若是在namenode进行,或致使整个系统卡顿。权限
第四步:将生成的fsimage.ckpt经过http协议发送至namenode。im
第五步:重命名fsimage.ckpt为fsimage,edits.new为edit。命名