Hadoop学习四:Hadoop-Hdfs NameNode

阅读更多

一.NameNode概述

  •  NameNode存放了所有文件和文件夹的元数据信息
    • 内存中:在系统启动时,会把fsimage和editlog记录的元数据信息加装到内存中;在系统启动时,NameNode收集DataNode心跳,在内存中形成file->blocks的对应关系。
    • 硬盘上:操作日志以fsimage和editlog的形式持久化在硬盘上。
  • NameNode分类
    • NameNode,Secondary NameNode。
    • NameNode,Checkpoint Node,Backup NameNode。

二.fsimage editLog

  1. editLog:客户端对文件系统每次读写等操作时,元数据节点首先修改内存中的数据结构,然后记录到editlog中。
  2. fsimage:二进制文件;当editlog达到一定量(fs.checkpoint.size)或者距离上次归并到fsimage达到一定时间(fs.checkpoint.period)时, editlog会被归并到fsimage中。此过程被称为checkpoint。另外一个checkpoint的时间是NameNode启动时。

三.NameNode + Secondary NameNode

  1. Secondary NameNode通知NameNode准备chekpoint。
  2. NameNode产生edits.new,用来接受checkpoint过程中的editlog。
  3. Secondary NameNode通过http get方式获取NameNode的fsimage与editlog。
  4. Secondary NameNode开始合并获取的上述两个文件,产生一个新的fsimage文件fsimage.ckpt。
  5. Secondary NameNode用http post方式发送fsimage.ckpt至NameNode。
  6. NameNode将fsimage.ckpt与edits.new文件分别重命名为fsimage与edits,然后更新fstime,整个checkpoint过程到此结束。 Hadoop学习四:Hadoop-Hdfs NameNode_第1张图片

四.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上报。 

五.你也可以阅读以下文章

  1. http://www.happyang.com/?p=6
  2. http://blog.sina.com.cn/s/blog_7ead58ad0100umd9.html

 

你可能感兴趣的:(Hadoop学习四:Hadoop-Hdfs NameNode)