首页> 中国专利> HDFS架构及HDFS架构中NameNode节点的压力分解方法

HDFS架构及HDFS架构中NameNode节点的压力分解方法

摘要

本发明公开了一种HDFS架构及HDFS架构的NameNode节点的压力分解方法,本发明将HDFS架构中NameNode节点分为MetaDataNode节点和MonitorNode节点,所述MetaDataNode节点与所述MonitorNode节点之间进行数据通信;所述MetaDataNode节点用于Hadoop分布式文件系统中元数据的管理,所述MonitorNode监测Hadoop分布式文件系统、备份元数据、与所述MetaDataNode节点之间交互数据。相比现有技术HDFS架构中只有一台NameNode节点,本发明HDFS架构中NameNode节点分为MetaDataNode节点和MonitorNode节点,即将原HDFS架构中NameNode的职责分解到两个节点上,能够有效的减轻现有HDFS架构中主控节点的压力。

著录项

  • 公开/公告号CN103581332A

    专利类型发明专利

  • 公开/公告日2014-02-12

    原文格式PDF

  • 申请/专利权人 武汉理工大学;

    申请/专利号CN201310574038.5

  • 发明设计人 李春林;吴舰;

    申请日2013-11-15

  • 分类号H04L29/08;

  • 代理机构武汉开元知识产权代理有限公司;

  • 代理人潘杰

  • 地址 430070 湖北省武汉市洪山区珞狮路122号

  • 入库时间 2024-02-19 23:19:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-02

    未缴年费专利权终止 IPC(主分类):H04L29/08 授权公告日:20170524 终止日期:20171115 申请日:20131115

    专利权的终止

  • 2017-05-24

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20131115

    实质审查的生效

  • 2014-02-12

    公开

    公开

说明书

技术领域

本发明涉及云计算中的云存储,具体地指一种HDFS架构及HDFS架构中 NameNode节点的压力分解方法。

背景技术

随着互联网技术的广泛应用及发展,全球已经进入了大数据时代,信息量 呈现了爆炸性的增长,传统的存储已经满足不了时代的需要,存储资源的昂贵 及大数据量的处理及管理逐渐制约着企业的发展,越来越多的企业开始将数据 存储分离出来,通过一些技术手段实现高可靠性、高扩展性、大容量、高效率、 相对低成本的存储方式,并且可以实现存储资源的对外租赁这就是云存储出现 的原因。云存储的出现则会彻底改变大数据时代的存储模式。

具体来说,云存储是在云计算(cloud computing)概念上延伸和发展出来的一 个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,把各种 不同类型的存储设备通过软件进行协同工作,成为一个数据中心,企业或个人 的文件或数据集中存储在数据中心而非本地,并按实际使用进行付费,这就形 成了一个对外提供数据存储和业务访问功能的一个云存储系统。换句话说,当 云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需 要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云 存储是一个以数据存储和管理为核心的云计算系统。所以,云存储即是云计算 所提供的一种存储服务。

鉴于上述的云存储,使得大量中小型企业可以不再受制于昂贵的存储服务 器成本,并且免去了对服务器的架构设计及运维管理成本,只需要一笔少量的 投入,使用公共云存储服务,降低成本的同时也得到了更好的技术保障。

Hadoop(分布式系统基础架构)采用的是分布式系统基础架构,用户可以 在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高 速运算和存储。Hadoop和处理大规模数据的云存储具有天然的联系,可以设计 部署在低廉的硬件设备上,以提供高传输率来访问应用程序的数据,适合那些 有着超大数据集的应用程序.所以目前国内外很多云存储是基于Hadoop架构之 上的。

Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)是 部署在大量低廉硬件上的文件系统,采用流的方式进行文件系统中数据的访问, 并具有数据自动备份等功能,因此具有高容错性、高吞吐量等特点,适合大数 据集的应用服务。HDFS采用Master/Slave结构,即主从分布式结构。HDFS架 构中包括了一台NameNode节点,还有多台DataNode节点,其本质上是集群中 的多种服务器,协同工作,各尽其责,提供整个文件系统的服务。其中包括主 控服务器(即文件系统的Master,NameNode节点)、数据服务器(即文件系统 的Slave,DataNode节点),以及客户服务器Client。

HDFS架构中单一节点的NameNode简化了系统的架构,但也增加了单一节 点的风险,一旦NameNode出现故障,整个系统将会瘫痪。由于NameNode负 责全部的元数据管理和系统的监测,所以其具有巨大的负载压力,而这负载压 力是其可能发生故障的原因之一。

发明内容

本发明目的在于克服上述现有技术的不足而提供一种HDFS架构及HDFS 架构中NameNode节点的压力分解方法,本发明通过将HDFS架构中NameNode 节点分为MetaDataNode节点和MonitorNode节点,以分解原HDFS架构中只有 单一NameNode节点的压力,提高了HDFS的工作效率。

实现本发明目的采用的技术方案是:一种HDFS架构,包括一台NameNode 节点和多台DataNode节点,所述NameNode节点包括:

MetaDataNode节点,用于Hadoop分布式文件系统中元数据的管理;以及

MonitorNode节点,与所述MetaDataNode节点之间进行数据通信连接,用 于Hadoop分布式文件系统的监测、元数据的备份、与所述MetaDataNode节点 之间的数据交互。

此外,本发明还提供一种基于上述HDFS架构的NameNode节点的压力分 解方法,包括:

将HDFS架构中NameNode节点分为MetaDataNode节点和MonitorNode节 点,所述MetaDataNode节点与所述MonitorNode节点之间进行数据通信;

所述MetaDataNode节点用于Hadoop分布式文件系统中元数据的管理,所 述MonitorNode监测Hadoop分布式文件系统、备份元数据、与所述MetaDataNode 节点之间交互数据。

相比现有技术HDFS架构中只有一台NameNode节点,本发明HDFS架构 中NameNode节点分为MetaDataNode节点和MonitorNode节点,即将原HDFS 架构中NameNode的职责分解到两个节点上,能够有效的减轻现有HDFS架构 中主控节点的压力。

附图说明

图1为本发明HDFS架构的结构框图。

图2为本发明HDFS文件系统启动及工作流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步的详细说明。

如图1所示,本发明HDFS架构包括一台NameNode(名称节点)节点和多 台DataNode(数据节点)节点,所述NameNode节点包括MetaDataNode(元数 据节点)节点和MonitorNode(监控节点)节点,MetaDataNode节点主要负责整 个HDFS的元数据管理,而MonitorNode节点主要负责一些额外的工作,包括 监控和存储块的复制等。此外,MetaDataNode节点和MonitorNode节点之间的 重要信息进行相互备份或检测,保证了系统的可靠性。本发明HDFS构架将原 NameNode节点的职责分解到两个节点上,有效的减轻原始架构主控节点的压 力。

在现有HDFS的架构中,虽然主控节点NameNode并没有直接的数据流接 触,但其担当了整个架构的大脑的作用,Client(用户)每一次的请求都会经过 NameNode的许可与分配,并且NameNode还具有很重要的管理职责。所以,一 旦NameNode发生故障,则整个HDFS集群也会处于瘫痪状态,虽然可以通过 设置Secondary NameNode的备份节点进行NameNode的修复,但从根本上处理, 需要尽可能的降低NameNode发生故障的概率。而NameNode的职责所带来的 巨大压力,是其可能发生故障的原因之一。

NameNode的职责众多,但其中的元数据管理相对比较独立,并且元数据管 理的日志文件较大,而且更新极为频繁,通过获知元数据信息而进行的操作要 占到整个系统处理的50%以上。本发明HDFS的架构就是将元数据管理分离出 来,由另一个NameNode节点专门进行管理,则可以减轻NameNode节点的压 力,降低故障发生的概率。

由于元数据信息的更新相当频繁,并且过程相对独立,为了减轻单一 NameNode节点的访问压力,本发明HDFS构架新增另一个节点专门处理状态的 监控和调度,行成了一种二元管理机制的文件系统。即本发明将主控节点分割 为MetaDataNode节点和MonitorNode节点,各司其职,同时为相互之间进行一 种备份机制,不仅减轻了主控节点的压力,而且在任意一个节点出现故障时, 也更易于迅速恢复。使整个文件系统的可靠性和可扩展性进一步增强。

Client在进行文件的读写操作时,MetaDataNode节点会需要进行元数据信 息的查看。与元数据信息相关的操作,都直接与MetaDataNode进行交互。另一 个节点MonitorNode主要负责状态的监控,当需要元数据信息时(比如需要进 行文件块的复制),也会向MetaDataNode节点发送请求,这种操作并不是非常 频繁,所以整个系统可以降低节点的受压情况,付出的代价是MetaDataNode节 点和新的MonitorNode节点之间的通信,本发明将MetaDataNode节点和 MonitorNode节点放在同一个机架中,距离非常近,所以其之间的通信成本非常 的小,其相互之间还可以作为备份节点,增强了整个系统的可靠性。

下面结合图2说明本发明HDFS架构的启动及工作过程。

1)在HDFS启动时,MetaDataNode节点和MonitorNode节点会同时启动。

2)MetaDataNode节点负责元数据信息的处理,判断FsImage文件和EditLog 文件是否存在,如果出现问题,则从MonitorNode节点进行备份元数据的复制; 如果没有问题,则把元数据信息读入内存;

3)查看EditLog文件,确保元数据信息得到及时的更新;

4)日志信息得到更新后,写回保存元数据信息的磁盘,然后往MonitorNode 节点进行备份更新;

5)MetaDataNode节点和MonitorNode节点启动后,DataNode节点将处于 活跃状态,有元数据信息的更新,会及时的向MetaNodeNode节点进行反馈,并 且会频繁的发送心跳消息给MonitorNode节点,告诉其自己处于活跃状态。

从MetaDataNode节点和MonitorNode节点开始启动到元数据的备份和管 理,直到DataNode节点处于活跃状态的流程。MetaDataNode还是作为元数据节 点,进行核心的元数据管理,其中的元数据信息同时会在MonitorNode节点中 进行备份,以防止元数据信息文件丢失而造成的影响。

下面在HDFS系统处于活跃状态时,计算现有HDFS架构中NameNode节 点的单位压力值,以及本发明HDFS架构中MonitorNode节点和MetaDataNode 节点的单位压力值,从而说明本发明HDFS构架在压力分解方面的效果。

为了保证结果的准确性,两种计算方法需在同一网络环境和资源环境下, 此外还需考虑Client的单位请求数以及DataNode的连接数。所以,在现有HDFS 架构中,NameNode节点的负载压力主要来自于Client的请求操作导致的元数据 信息更新,以及DataNode节点的心跳监测,而本发明HDFS中MetaDataNode 节点的负载压力主要是元数据信息的更新,其中,MonitorNode节点的压力主要 是DataNode节点的心跳监测,此外,MetaDataNode节点和MonitorNode节点间 还具有交互通信,也会耗费一定的资源,造成一定的负载压力。所以按照设计 过程,最后本发明HDFS构架中的二元节点的总负载应该超过现有HDFS架构 中的主控节点负载,但也应该要远远小于两倍的现有HDFS架构中主控节点负 载。本发明将现有HDFS架构中一个节点的负载压力分解到两个节点后,会使 系统更加的稳定,主控节点不再成为性能瓶颈,并且降低了系统故障发生的概 率。在两个系统完成相同的任务时,要保证完成的时间不会有太大的偏差。

节点的负载压力转化的是节点需要消耗的CPU和内存资源,所以,在计算 节点的负载压力时,表示成节点所消耗的资源,同时统计访问节点的次数。令 现有HDFS构架中NameNode节点的消耗的资源为Rnn,本发明HDFS构架中 MonitorNode节点的压力值为Rmn,MetaDataNode节点的压力值为Rmdn,本 实施例计算以下参数:

表示原始NameNode节点在管理j个DataNode节点时的压力值;

表示MonitorNode节点在管理j个DataNode节点时的压力值;

表示MetaDataNode节点在管理j个DataNode节点时的压力值;

T表示Client发送的请求数,可以当做是任务集;

Ravai表示节点所在的机器剩余可用资源;

M表示DataNode节点的数目;

VN_n表示访问NameNode节点的次数;

VN_md表示访问MetaDataNode节点的次数;

VN_m表示访问MonitorNode节点的次数。

元数据更新发送给NameNode节点的请求数m,j个DataNode节点的心跳 信息。

对于现有HDFS架构中,定义一个三元组<n,R,vn>表示Client发出一次任务 请求tn,NameNode节点所消耗的资源R,以及访问节点的次数vn。HDFS主控 节点NameNode节点的压力负载统计方式为:

(1)系统启动,元数据节点成功加载到内存

(2)初始化三元组<0,0,0>,直接确定DataNode的节点数j,初始化Rnn为0, VN_n为0,记录当前时间

(3)do until任务集T中所有任务完成

(4)   for任务集T中每一个任务ti

(5)   统计R,统计vn

(6)   if R<Ravai

(7)   修改三元组<i,Ri,vn>

(8)   end if

(9)   Ri累加到Rnn,vn累加到VN_n

(10)   end for

(11)   end do

(12)   记录当前时间

(13)   用(12)的时间减去(2)的时间

这样得到NameNode节点总的消耗资源值和访问次数VN_n,得到完成 所有任务所花费的时间。

对于本发明HDFS架构,要计算MetaDataNode节点和MonitorNode节点的负 载压力。定义一个三元组<n,R,vn_md>表示Client发出一次任务请求tn, MetaDataNode节点所消耗的资源R,以及访问节点的次数vn_md。定义一个二元 组<R,vn_m,>,表示MonitorNode节点所消耗的资源,以及访问节点的次数 vn_m,则二元节点的压力负载统计方式为:

(1)系统启动,元数据节点成功加载到内存

(2)初始化三元组<0,0,0>,初始化二元组<0,0>,直接确定DataNode的节 点数j,初始化Rmn为0,初始化Rmdn为0,VN_md为0,VN_m为0,记 录当前时间

(3)do until任务集T中所有任务完成

(4)   for任务集T中每一个任务ti

(5)   统计R,统计vn

(6)   if R<Ravai

(7)   修改三元组<i,Ri,vn_md>,修改二元组<R,vn_m>

(8)   end if

(9)   三元组Ri累加到Rmn,vn_md累加到VN_md,二元组R累加到 Rmdn,vn_m累加到VN_m

(10)   end for

(11)   end do

(12)   记录当前时间

(13)   用(12)的时间减去(2)的时间

通过上述步骤计算得到了MetaDataNode节点和MonitorNode节点的消耗资 源值和以及访问次数,然后与现有HDFS架构中主控节点进行对比, 可以确定在不影响整个系统运行性能的前提下,能够有效的减少现有HDFS架 构中主控节点的负载压力。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号