hadoop namenode的工作机制 (checkpoint过程、元数据合并一个意思)

转载 2017年01月03日 20:36:10

Hadoop 集群中有两种节点,一种是namenode,还有一种是datanode。

其中datanode主要负责数据的存储,namenode主要负责三个功能,分别是(1)管理元数据 (2)维护目录树 (3)响应客户请求

首先介绍下,元数据格式 
这里写图片描述 
hdfs在外界看来就是普通的文件系统,可以通过路径进行数据的访问等操作,但在实际过程存储中,却是分布在各个节点上。如上图所示,是一条元数据,/test/a.log 是在hdfs文件系统中的路径,3是这个文件的副本数(副本数可以通过在配置文件中的配置来修改的)。在hdfs中,文件是进行分块存储的,如果文件过大,就要分成多块存储,每个块在文件系统中存储3个副本,以上图为例,就是分成blk_1和blk_2两个块,每个块在实际的节点中有3个副本,比如blk_1的3个副本分别存储在h0,h1,h3中。

现在由此引出一个问题,namenode中的元数据是存储在哪里的?首先,我们做个假设,如果存储在namenode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断点,元数据丢失,整个集群就无法工作了!!!因此必须在磁盘中有备份,在磁盘中的备份就是fsImage,存放在namenode节点对应的磁盘中。这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新fsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦namenode节点断点,就会产生数据丢失。因此,引入edits.log文件(只进行追加操作,效率很高)。每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到edits.log中。这样,一旦namenode节点断电,可以通过fsImage和edits.log的合并,合成元数据。但是,如果长时间添加数据到edit.log中,会导致该文件数据过大,效率降低,而且一旦断电,恢复元数据需要的时间过长。因此,需要定期进行fsImage和edits.log的合并,如果这个操作有namenode节点完成,又会效率过低。因此,引入一个新的节点secondaryNamenode,专门用于fsImage和edits.log的合并。具体的checkpoint执行过程如下:

这里写图片描述

以下即是checkpoint过程:

secondary namenode请求主Namenode停止使用edits文件,暂时将新的写操作记录到一个新文件中,如edits.new。 
secondary namenode节点从主Namenode节点获取fsimage和edits文件(采用HTTP GET) 
secondary namenode将fsimage文件载入到内存,逐一执行edits文件中的操作,创建新的fsimage文件 
secondary namenode将新的fsimage文件发送回主Namenode(使用HTTP POST) 
主Namenode节点将从secondary namenode节点接收的fsimage文件替换旧的fsimage文件,用步骤1产生的edits.new文件替换旧的edits文件(即改名)。同时更新fstime文件来记录检查点执行的时间

注:从Hadoop0.21.0开始,辅助Namenode已经放弃不用,由checkpoint节点取而代之,功能不变。新版本同时引入一种新的Namenode,名为BackupNode。

相关文章推荐

Hadoop2.0 HA的checkpoint过程

hdfs将文件系统的元数据信息存放在fsimage和一系列的edits文件中。在启动HDFS集群时,系统会先加载fsimage,然后逐个执行所有Edits文件中的每一条操作,来获取完整的文件系统元数据...

NAMENODE工作机制,元数据管理(元数据存储机制、元数据手动查看)、元数据的checkpoint、元数据目录说明(来自学习资料)

NAMENODE工作机制学习目标:理解namenode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中“性能调优”、“namenode”故障问题的分析解决能...

hadoop namenode的工作机制 (checkpoint过程、元数据合并一个意思)

转载:1 http://www.cnblogs.com/hanyuanbo/archive/2012/07/25/2608698.html 2 http://blog.csdn.net/u0...

hadoop集群默认配置和常用配置

获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件...
  • hoocoln
  • hoocoln
  • 2015年09月07日 19:26
  • 1259

HBase入门篇

1-HBase的安装 HBase是什么? HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就...

在ubuntu linux下压缩文件与解压文件

    一般来说ubuntu 下带有tar 命令,可以用来解压和压缩之用。但是我们经常要与win下用户打交道,所以要安装一些解压工具如:rar zip 等命令。如果要需要用到zip工具那么可以:   ...
  • Eilien
  • Eilien
  • 2007年07月04日 16:18
  • 18279

转载-Hadoop NameNode元数据相关文件目录解析

在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘:[wyp@wyp hadoop-2.2.0]$ $HADOOP_HOME/bin/hdfs namenode...

Hadoop NameNode元数据相关文件目录解析

在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘: 1 [wyp@wyp hadoop-2.2.0]$  $HAD...

【总结】Hadoop NameNode元数据相关文件目录解析

原文:https://www.iteblog.com/archives/967.html 在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hadoop namenode的工作机制 (checkpoint过程、元数据合并一个意思)
举报原因:
原因补充:

(最多只允许输入30个字)