一.NameNode概述
- NameNode存放了所有文件和文件夹的元数据信息
- 内存中:在系统启动时,会把fsimage和editlog记录的元数据信息加装到内存中;在系统启动时,NameNode收集DataNode心跳,在内存中形成file->blocks的对应关系。
- 硬盘上:操作日志以fsimage和editlog的形式持久化在硬盘上。
- NameNode分类
- NameNode,Secondary NameNode。
- NameNode,Checkpoint Node,Backup NameNode。
二.fsimage editLog
- editLog:客户端对文件系统每次读写等操作时,元数据节点首先修改内存中的数据结构,然后记录到editlog中。
- fsimage:二进制文件;当editlog达到一定量(fs.checkpoint.size)或者距离上次归并到fsimage达到一定时间(fs.checkpoint.period)时, editlog会被归并到fsimage中。此过程被称为checkpoint。另外一个checkpoint的时间是NameNode启动时。
三.NameNode + Secondary NameNode
- Secondary NameNode通知NameNode准备chekpoint。
- NameNode产生edits.new,用来接受checkpoint过程中的editlog。
- Secondary NameNode通过http get方式获取NameNode的fsimage与editlog。
- Secondary NameNode开始合并获取的上述两个文件,产生一个新的fsimage文件fsimage.ckpt。
- Secondary NameNode用http post方式发送fsimage.ckpt至NameNode。
- NameNode将fsimage.ckpt与edits.new文件分别重命名为fsimage与edits,然后更新fstime,整个checkpoint过程到此结束。
四.NameNode + Checkpiont NameNode + Backup NameNode
- 在Hadoop 0.21.0中,Secondary NameNode被Checkpoint NameNode和Backup NameNode取代。
- Checkpoint NameNode功能同Secondary NameNode,主要作用是合并元数据。
- Backup NameNode:NameNode实时主动把editlog和fsimage传送给Backup NameNode,主要作用是备份。但其还不能作热备,比喻Backup NameNode的内存中未保存Block的位置信息,仍需要等DataNode上报。
五.你也可以阅读以下文章
一.NameNode概述 二.fsimage editLog 三.NameNode + Secondary NameNode 四.NameNode + Checkpiont NameNode + Backup NameNode 五.你也可以阅读以下文章