CN107168970A - 一种分布式文件系统hdfs的管理方法、装置及系统 - Google Patents
一种分布式文件系统hdfs的管理方法、装置及系统 Download PDFInfo
- Publication number
- CN107168970A CN107168970A CN201610128554.9A CN201610128554A CN107168970A CN 107168970 A CN107168970 A CN 107168970A CN 201610128554 A CN201610128554 A CN 201610128554A CN 107168970 A CN107168970 A CN 107168970A
- Authority
- CN
- China
- Prior art keywords
- name node
- state
- namenode
- stand
- active
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000007726 management method Methods 0.000 title description 5
- 230000003993 interaction Effects 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000003672 processing method Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 16
- 230000003139 buffering effect Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 239000000306 component Substances 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分布式文件系统HDFS的数据处理方法,所述方法包括:名称节点Namenode根据所述Namenode对应的切换控制器与集群协调服务器的交互结果确定所述Namenode的当前状态;当所述Namenode的当前状态为活动状态时,所述Namenode通过实时数据流通道将数据同步给至少一个备用状态的Namenode。上述技术方案提高了数据同步速度,也提高了主备Namenode的切换速度,减少了软硬件配置,同时简化了运维成本。
Description
技术领域
本发明涉及通信领域,具体涉及一种分布式文件系统(HDFS,Hadoop Distributed File System)的管理方法及装置。
背景技术
名称节点(以下称为Namenode)是HDFS(Hadoop Distributed File System,分布式文件系统)的元数据服务器,管理并协调数据节点(Datanode)的工作,其内存中保存整个分布式文件系统的两类元数据:
(1)文件系统的名字空间,即系统目录树;
(2)数据块副本与Datanode的映射,即副本的位置。
第(1)类元数据在Namenode上定期持久化,保存为镜像文件。数据块副本的位置信息没有实现持久化,而是在Namenode启动时,通过接收Datanode的块报告(Blockreport)获得。Namenode的磁盘上保存操作日志。客户端对数据或元数据的读写操作被分解为一条或多条日志存入操作日志中。
Namenode启动时,会将镜像文件和操作日志读取到内存中,把日志应用到名字空间中,使得Namenode中的名字空间恢复到宕机之前的状态。在Hadoop集群中一旦Namenode宕机,则整个集群不能再对外提供服务。
Hadoop社区对Namenode采用的备份机制存在各种缺陷,从名称节点(SecondaryNamenode)机制和备用节点(BackupNode)机制,切换时间都过长且有数据丢失的风险,且不支持自动切换,是冷备/温备机制。
Hadoop2.0提出的共享存储(Shared Storage)机制解决高可用(HA,High Availability)问题,在活动(Active)Namenode和备用(Standby)Namenode之间要有个共享的存储日志的地方,Active Namenode把EditLog文件写到这个共享的存储日志的地方,Standby Namenode去读取日志然后执行,这样Active和Standby Namenode内存中的HDFS元数据保持着同步。这种方式解决考虑脑裂(brain-split)由于切换不彻底或其他原因,导致客户端误以为出 现两个活动状态的主节点(Active master),最终使得整个集群处于混乱状态,尤其是共享存储隔离(fencing),要确保只有一个主Nameode向共享存储中写数据。这种解决方式流程复杂,配置复杂,对运维要求高。另外,主流的QJM(Quorum Journal Manager,集群仲裁管理机制)HA模式,当部署的QJM存储段进程JournalNode损坏超过一半节点时会造成整个Hadoop集群功能不可用。
发明内容:
本发明提供一种分布式文件系统(HDFS)的数据处理方法、装置及系统,能够提高数据同步的速度。
为解决上述技术问题,本发明提供一种分布式文件系统HDFS的数据处理方法,所述方法包括:
名称节点根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态;
当所述名称节点的当前状态为活动状态时,所述名称节点通过实时数据流通道将数据同步给至少一个备用状态的名称节点。
可选地,
所述名称节点根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态包括:
如果所述名称节点对应的切换控制器与集群协调服务器交互后获取到全局锁,则所述名称节点根据所述切换控制器的通知进入活动状态;
如果所述名称节点对应的切换控制器与集群协调服务器交互后未获取到全局锁,则所述名称节点根据所述切换控制器的通知进入备用状态;
其中,所述全局锁的个数为一个。
可选地,
当所述名称节点的当前状态为活动状态时,所述名称节点通过实时数据流通道将数据同步给至少一个备用状态的名称节点前,还包括:
所述活动状态的名称节点与至少一个备用状态的名称节点之间建立相应的实时数据流通道。
可选地,
所述活动状态的名称节点与至少一个备用状态的名称节点之间建立相应的实时数据流通道包括:
所述活动状态的名称节点与备用状态的名称节点握手成功后,接收备用状态的名称节点发送的注册请求;
所述活动状态的名称节点向发送注册请求的备用状态的名称节点返回注册响应后,所述活动状态的名称节点与接收到注册响应的备用状态的名称节点之间建立相应的实时数据流通道。
可选地,
当所述名称节点的当前状态为活动状态时,所述名称节点通过实时数据流通道将数据同步给至少一个备用状态的名称节点包括:
所述活动状态的名称节点将更新的数据缓冲到所述实时数据流通道;
当所述实时数据流通道的缓冲值达到预定的系统阈值时,通过所述实时数据流通道将缓冲的数据发送给相应的备用状态的名称节点。
可选地,所述方法还包括:
当所述名称节点的当前状态为备用状态时,所述名称节点对活动状态的名称节点执行检查点操作。
可选地,所述方法还包括:
在所述名称节点的当前状态为活动状态时,如果所述名称节点出现异常情况,则所述名称节点将当前状态从活动状态切换为备用状态。
本发明还提供一种分布式文件系统HDFS的数据处理装置,设置于名称节点,所述装置包括:
确定模块,用于根据所述名称节点对应的切换控制器与集群协调服务器 的交互结果确定所述名称节点的当前状态;
处理模块,用于当所述确定模块确定所述名称节点的当前状态为活动状态时,通过实时数据流通道将数据同步给至少一个备用状态的名称节点。
可选地,
所述确定模块用于根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态具体是指:
如果所述名称节点对应的切换控制器与集群协调服务器交互后获取到全局锁,则所述名称节点根据所述切换控制器的通知进入活动状态;
如果所述名称节点对应的切换控制器与集群协调服务器交互后未获取到全局锁,则所述名称节点根据所述切换控制器的通知进入备用状态;
其中,所述全局锁的个数为一个。
可选地,所述装置还包括:
通道建立模块,用于当所述确定模块确定所述名称节点的当前状态为活动状态时,与至少一个备用状态的名称节点之间建立相应的实时数据流通道。
可选地,
所述通道建立模块,用于当所述确定模块确定所述名称节点的当前状态为活动状态时,与至少一个备用状态的名称节点之间建立相应的实时数据流通道,具体是指:
所述活动状态的名称节点与备用状态的名称节点握手成功后,接收备用状态的名称节点发送的注册请求;
向发送注册请求的备用状态的名称节点返回注册响应后,与接收到注册响应的备用状态的名称节点之间建立相应的实时数据流通道。
可选地,
所述处理模块用于当所述确定模块确定所述名称节点当前为活动状态时,通过实时数据流通道将数据同步给至少一个备用状态的名称节点,具体是指:
将更新的数据缓冲到所述实时数据流通道;
当所述实时数据流通道的缓冲值达到预定的系统阈值时,通过所述实时数据流通道将缓冲的数据发送给相应的备用状态的名称节点。
可选地,所述装置还包括:
检查点处理模块,用于当所述确定模块确定所述名称节点的当前状态为备用状态时,对活动状态的名称节点执行检查点操作。
可选地,所述装置还包括:
切换模块,用于在所述名称节点的当前状态为活动状态时,当所述名称节点出现异常情况时,将所述名称节点的当前状态从活动状态切换为备用状态。
本发明还提供一种分布式文件系统HDFS的数据处理系统,所述系统包括:至少两个名称节点、每个名称节点对应的切换控制器、集群协调服务器;
其中,所述名称节点包括如权利要求8至14任一所述的分布式文件系统HDFS的数据处理装置;
所述切换控制器用于当与所述集群协调服务器交互后获取到全局锁后,通知对应的名称节点进入活动状态;还用于当与所述集群协调服务器交互后未获取到全局锁后,通知对应的名称节点进入备用状态;以及还用于检测对应的名称节点的运行情况,根据检测结果通知所述对应的名称节点进行状态切换;
所述集群协调服务器用于管理当前状态为活动状态的名称节点。
上述技术方案提高了数据同步速度,也提高了主备Namenode的切换速度,减少了软硬件配置,同时简化了运维成本。
附图说明
图1为实施例一中的分布式文件系统HDFS的数据处理方法的流程图;
图2为实施例二中的分布式文件系统HDFS的数据处理方法的流程图;
图3为实施例三中的分布式文件系统HDFS的数据处理装置的结构示意图;
图4为实施例四中的分布式文件系统HDFS的数据处理系统的结构示意图;
图5为实施例四中的分布式文件系统HDFS的组件示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
下面先对本发明实施例中涉及的Namenode、切换控制器以及Zookeeper集群做详细的介绍。
本发明实施例中至少包括两个Nameode,一个活动状态的Namenode(以以下称为Active Namenode)以及至少一个备用状态的Namenode(以下称为Standby Namenode),本发明实施例中的Nameode状态可以进行切换,对于任一个Namenode,只要对应的切换控制器获取到唯一的全局锁,该Namenode就可以进入Active状态。例如,对于Namenode A和Namenode B,假设当前时刻Namenode A为Active Namenode,Namenode B为Standby Namenode,到了下一时刻Namenode A可能由于异常情况切换为Standby Namenode,而Namenode B由于对应的切换控制器获取到全局锁从而切换为Active Namenode。
Active Namenode处于工作态,Standby Namenode是Active Namenode的热备份。Active Namenode与每个Standby Namenode之间分别直接建立一条实时数据流通道,可以避免共享存储会遇到的“隔离(Fencing)”问题。
Active Namenode的客户端对产生的每一条操作日志首先写一份到本地edits日志文件,同时会向Standby Namenode的实时数据流通道中写一份。当实时数据流通道的流缓冲达到阈值时,将会同步到Standby Namenode节点上,Standby Namenode收到后就会根据日志内容进行操作,这样来完成低延迟的操作日志复制功能,保证Active Namenode与Standby Namenode的元数 据的一致性。当切换控制器监控到Active Namenode宕机后,Standby Namenode中任一个可以实时切换到Active状态。
本发明实施中的切换控制器可以是基于Zookeeper实现的切换控制器,主要由两个核心组件构成:活动Namenode选举组件和心跳检测组件。
活动Namenode选举组件负责与集群协调服务器交互,尝试获取全局锁,根据获取全局锁的结果判断通知所管理的Namenode进入Active状态还是Standby状态。心跳检测组件负责检测对应的Namenode的状态,以根据它的状态进行状态切换通知。
本发明实施例中的集群协调服务器可以是Zookeeper集群协调服务器,Zookeeper集群协调服务器提供了集群管理功能,利用Zookeeper组件的特性可以实现Namenode高可用功能。本发明实施例依靠Zookeeper集群的全局锁机制来确保任何时候只有唯一的Acitve Namenode。例如,假设有三个Namenode,那么其中一个是Active Namenode,其余两个是Standby Namenode,并且这三个Namenode中的任何一个都有可能成为Active Namenode,这取决于每个Namenode对应的切换控制器是否能获取到全局锁。
每个Namenode在Zookeeper集群中创建一个临时节点(以下称为ephemeral node),一旦Namenode异常,不能对外提供服务,该Namenode失效,此时,Zookeeper集群将会在设定的超时(timeout)时间内删除该ephemeral node,同时将当前的Active Namenode的信息写入Zookeeper集群。这样可以实时检测Namenode的当前状态,同时其它的任何节点可以籍此获取当前的Active Namenode的信息。
实施例一
如图1所示,本实施例提供一种分布式文件系统(HDFS)的数据处理方法,所述方法包括:
步骤S11:Namenode根据所述Namenode对应的切换控制器与集群协调服务器的交互结果确定所述Namenode的当前状态;
步骤S12:当所述Namenode的当前状态为活动状态时,所述Namenode 通过实时数据流通道将数据同步给至少一个备用状态的Namenode。
上述技术方案实现了Namenode间数据的实时同步,提高了数据同步的速度,保证了主备元数据的一致性。
可选地,Namenode根据Namenode对应的切换控制器与集群的交互结果确定Namenode的当前状态包括:
如果所述Namenode对应的切换控制器与集群协调服务器交互后获取到全局锁,则所述Namenode根据所述切换控制器的通知进入活动状态;如果所述Namenode对应的切换控制器与集群协调服务器交互后未获取到全局锁,则所述Namenode根据所述切换控制器通知进入备用状态;其中,所述全局锁的个数为一个。
可选地,步骤S12之前,所述方法还包括:所述活动状态的Namenode与至少一个备用状态的Namenode之间建立相应的实时数据流通道。
其中,可以通过以下方式建立相应的实时数据流通道:
所述活动状态的Namenode与至少一个备用状态的Namenode之间建立相应的实时数据流通道包括:所述活动状态的Namenode与备用状态的Namenode握手成功后,接收备用状态的Namenode发送的注册请求;所述活动状态的Namenode向发送注册请求的备用状态的Namenode返回注册响应后,所述活动状态的Namenode与接收到注册响应的备用状态的Namenode之间建立相应的实时传输流通道。
可选地,所述活动状态的Namenode通过实时数据流通道将数据同步给至少一个备用状态的Namenode包括:
所述活动状态的Namenode将更新的数据缓冲到所述实时传输流通道;
当所述实时传输流通道的缓冲值达到预定的系统阈值时,通过所述实时传输流通道将缓冲的数据发送给相应的备用状态的Namenode。
可选地,所述方法还包括:
当所述Namenode的当前状态为备用状态时,所述Namenode对所述活动
状态的Namenode执行检查点操作;
可选地,所述方法还包括:
在所述Namenode的当前状态为活动状态时,如果所述Namenode出现异常情况,则所述Namenode将当前状态从活动状态切换为备用状态。
上述技术方案提高了数据同步速度,也提高了主备Namenode的切换速度,减少了软硬件配置,同时简化运维成本。
于实际应用中,在银行、证券等行业硬件平台的配置可靠性很高,这些行业不需要再使用共享存储再保存元数据信息,本发明实施例提供的方案可以为此类用户提供一种轻量型的Namenode解决方案,使得Namenode间实时同步操作日志,不再通过共享存储方式实现Namenode的高可用功能,而且,支持Namenode手动/自动切换,减少了宕机切换时间,减少了软硬件配置,简化了运维。
实施例二
本实施例描述实施例一提供的方案在Zookeeper集群的应用。
如图2所示,本实施例提供的一种分布式文件系统(HDFS)的数据处理方法包括以下步骤:
步骤S201:配置至少两个Namenode,其中一个Namenode确定为Active Namenode,另外至少一个为Standby Namenode,分布式系统只使用Active Namenode提供服务,Active Namenode可以作为主Namenode,Standby Namenode作为备Namenode;
步骤S202:每个Namenode都读取本地配置,上电启动后进入Standby状态;
步骤S203:当任一Namenode上电初始化之后,每个Namenode对应的切换控制器分别与Zookeeper集群交互,根据获取全局锁的结果判断通知所管理的Namenode进入Active状态还是Standby状态;
当任一Namenode进入Active状态后就可以对外提供服务,其它 Namenode则进入Standby状态,时刻准备接管服务。
步骤S204:如果切换控制器获取到全局锁,则对应的Namenode进入Active状态;如果未获取到全局锁,则对应的Namenode进入Standby状态;
步骤S205:Active Namenode通过RPC(Remote Procedure Call,远程过程调用)调用与Standby Namenode握手,通知Standby Namenode该Namenode已经是Active状态,请Standby Namenode来注册;
步骤S206:Standby Namenode向Active Namenode发起注册RPC调用请求消息;
步骤S207:Active Namenode向Standby Namenode发起注册RPC调用响应消息;
步骤S208:Standby Namenode收到注册RPC调用响应消息后,启动检查点(Checkpointer)线程;
步骤S209:Active Namenode所有写操作都会实时更新本地日志Log(edits文件数据),同时向实时数据流通道写一份;
步骤S210:当实时数据流通道的流缓冲达到预定的系统阈值时,通过实时数据流通道将数据发送给Standby Namenode,Standby Namenode根据该数据更新本机fsimage和edits文件,并在内存中维护和Active Namenode一样的元数据。当所有的日志同步到Standby Namenode内存以及本地文件成功后,Active Namenode向客户端返回操作成功响应。在Active Namenode宕机之后,Standby Namenode拥有了与Active Namenod基本一致的元数据。
Active Namenode接受客户端操作请求,实时将请求的Editlog信息发送到Standby Namenode,实现了主备元数据的一致性。
当Active Namenode故障异常退出时,对应的切换控制器判定Active Namenode无法提供服务,就将全局锁释放出来,其它Standby Namenode的切换控制器一旦获取到全局锁就通知对应的Standby Namenode进入Active状态,接管对外服务。
步骤S211:Standby Namenode的Checkpoint触发后,Standby Namenode 执行检查点流程,检查点流程是将Standby Namenode内存的Image与Editlog进行合并,生成fsimage文件,同时将fsimage文件传输给Acitve Namenode;
其中,Image是元数据在内存中的存储结构,Editlog是一条条的操作日志记录,检查点操作也就是将所有的Editlog的操作日志在Standby Namenode中重新操作一次,并更新到Image中,从而保持主备一致。
步骤S212:当Active Namenode发现Standby Namenode宕机时,Active Namenode记录同步数据操作事务ID,当Standby Namenode恢复后继续同步。
步骤S213:DataNode的块报告(Block report)等RPC操作会发向其它所有Namenode,使得每个Namenode的块位置映射(Block locations map)都是最新的,这样可以做到切换主备Namenode后,原来的备Namenode(也即是切换后新的主Namenode)不再需要Block report的时间。客户端(Client)通过RPC的代理(Proxy)与Namenode交互。在Client会有多个代理同时存在(代理的数量可以与Namenode的总数量相同),分别代表与Active和Standby的Namenode的连接。当Client与Active Namenode正常通信的client proxy收到RPC返回的特殊Standby异常时,说明这个Active Namenode已经变成了Standby模式,所以触发故障切换,此后的RPC都是发往另外一个Namenode,也就是Namenode发生了主备切换。
上述技术方案提高了数据同步速度,也提高了主备Namenode的切换速度,减少了软硬件配置,同时简化运维成本。
下面以HDFS联邦(Federation)机制为例进一步说明本发明实施例中的的分布式文件系统HDFS的数据处理方法。
Federation是由多个NS(NameSpace,命名空间)组成的,每个NS又是由一个或多个Namenode组成,因此可以实现高可用HA。多个Namenode之间是联合的,共同为同一个Federation服务,同时每个Namenode有自己的作用域和存储空间,彼此相互独立且不需要互相协调,每个Namenode各自分工,管理自己的区域。
每个NS的Namenode都可以采用前述实施例中的技术方案进行数据实时同步和主备切换,从而实现NS的HA。
实施例三
如图3所示,本实施例提供一种分布式文件系统HDFS的数据处理装置,设置于名称节点Namenode,所述装置包括:
确定模块101,用于根据所述Namenode对应的切换控制器与集群协调服务器的交互结果确定所述Namenode的当前状态;
处理模块102,用于当所述确定模块确定所述Namenode当前为活动状态时,通过实时数据流通道将数据同步给至少一个备用状态的Namenode。
可选地,
所述确定模块用于根据所述Namenode对应的切换控制器与集群的交互结果确定所述Namenode的当前状态具体是指:
如果所述Namenode对应的切换控制器与集群协调服务器交互后获取到全局锁,则所述Namenode根据所述切换控制器的通知进入活动状态;
如果所述Namenode对应的切换控制器与集群协调服务器交互后未获取到全局锁,则所述Namenode根据所述切换控制器的通知进入备用状态;
其中,所述全局锁的个数为一个。
可选地,所述装置还包括:
通道建立模块103,用于当所述确定模块确定所述Namenode当前为活动状态时与至少一个备用状态的Namenode之间建立相应的实时数据流通道。
可选地,
所述通道建立模块103用于当所述确定模块确定所述Namenode当前为活动状态时与至少一个备用状态的Namenode之间建立相应的实时数据流通道具体是指:
所述活动状态的Namenode与备用状态的Namenode握手成功后,接收备 用状态的Namenode发送的注册请求;
向发送注册请求的备用状态的Namenode返回注册响应后,与接收到注册响应的备用状态的Namenode之间建立相应的实时传输流通道。
可选地,
所述处理模块102用于当所述确定模块确定所述Namenode当前为活动状态时,通过实时数据流通道将数据同步给至少一个备用状态的Namenode具体是指:
将更新的数据缓冲到所述实时传输流通道;
当所述实时传输流通道的缓冲值达到预定的系统阈值时,通过所述实时传输流通道将缓冲的数据发送给相应的备用状态的Namenode。
可选地,所述装置还包括:
检查点处理模块104,用于当所述确定模块确定所述Namenode当前状态为备用状态时,对活动状态的Namenode执行检查点操作。
可选地,所述装置还包括:
切换模块105,用于当所述活动状态的Namenode故障异常时,将所述Namenode的当前状态切换为备用状态。
实施例四
如图4所示,一种分布式文件系统HDFS的数据处理系统,包括:Namenode10、切换控制器20、集群协调服务器30;
其中,所述Namenode包括如权利要求8至14任一所述的分布式文件系统HDFS的数据处理装置;
所述切换控制器20用于当与所述集群协调服务器交互后获取到全局锁后,通知对应的Namenode进入活动状态;还用于当与所述集群协调服务器交互后未获取到全局锁后,通知对应的Namenode进入备用状态;以及还用于检测对应的Namenode的运行情况,根据检测结果对所述对应的Namenode进行 状态切换;
所述集群协调服务器30用于对当前状态为活动状态的Namenode的管理。
如图5所示,为本发明实施例中的分布式文件系统HDFS的数据处理系统的一个具体实例。本实例中集群协调服务器是Zookeeper集群协调服务器,切换控制器包括活动NameNode选举组件和心跳检测组件。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
Claims (15)
1.一种分布式文件系统HDFS的数据处理方法,其特征在于,所述方法包括:
名称节点根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态;
当所述名称节点的当前状态为活动状态时,所述名称节点通过实时数据流通道将数据同步给至少一个备用状态的名称节点。
2.如权利要求1所述的方法,其特征在于:
所述名称节点根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态包括:
如果所述名称节点对应的切换控制器与集群协调服务器交互后获取到全局锁,则所述名称节点根据所述切换控制器的通知进入活动状态;
如果所述名称节点对应的切换控制器与集群协调服务器交互后未获取到全局锁,则所述名称节点根据所述切换控制器的通知进入备用状态;
其中,所述全局锁的个数为一个。
3.如权利要求1所述的方法,其特征在于:
当所述名称节点的当前状态为活动状态时,所述名称节点通过实时数据流通道将数据同步给至少一个备用状态的名称节点前,还包括:
所述活动状态的名称节点与至少一个备用状态的名称节点之间建立相应的实时数据流通道。
4.如权利要求3所述的方法,其特征在于:
所述活动状态的名称节点与至少一个备用状态的名称节点之间建立相应的实时数据流通道包括:
所述活动状态的名称节点与备用状态的名称节点握手成功后,接收备用状态的名称节点发送的注册请求;
所述活动状态的名称节点向发送注册请求的备用状态的名称节点返回注册响应后,所述活动状态的名称节点与接收到注册响应的备用状态的名称节点之间建立相应的实时数据流通道。
5.如权利要求1至4任一所述的方法,其特征在于:
当所述名称节点的当前状态为活动状态时,所述名称节点通过实时数据流通道将数据同步给至少一个备用状态的名称节点包括:
所述活动状态的名称节点将更新的数据缓冲到所述实时数据流通道;
当所述实时数据流通道的缓冲值达到预定的系统阈值时,通过所述实时数据流通道将缓冲的数据发送给相应的备用状态的名称节点。
6.如权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
当所述名称节点的当前状态为备用状态时,所述名称节点对活动状态的名称节点执行检查点操作。
7.如权利要求2至4任一所述的方法,其特征在于,所述方法还包括:
在所述名称节点的当前状态为活动状态时,如果所述名称节点出现异常情况,则所述名称节点将当前状态从活动状态切换为备用状态。
8.一种分布式文件系统HDFS的数据处理装置,设置于名称节点,其特征在于,所述装置包括:
确定模块,用于根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态;
处理模块,用于当所述确定模块确定所述名称节点的当前状态为活动状态时,通过实时数据流通道将数据同步给至少一个备用状态的名称节点。
9.如权利要求8所述的装置,其特征在于:
所述确定模块用于根据所述名称节点对应的切换控制器与集群协调服务器的交互结果确定所述名称节点的当前状态具体是指:
如果所述名称节点对应的切换控制器与集群协调服务器交互后获取到全局锁,则所述名称节点根据所述切换控制器的通知进入活动状态;
如果所述名称节点对应的切换控制器与集群协调服务器交互后未获取到全局锁,则所述名称节点根据所述切换控制器的通知进入备用状态;
其中,所述全局锁的个数为一个。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
通道建立模块,用于当所述确定模块确定所述名称节点的当前状态为活动状态时,与至少一个备用状态的名称节点之间建立相应的实时数据流通道。
11.如权利要求10所述的装置,其特征在于:
所述通道建立模块,用于当所述确定模块确定所述名称节点的当前状态为活动状态时,与至少一个备用状态的名称节点之间建立相应的实时数据流通道,具体是指:
所述活动状态的名称节点与备用状态的名称节点握手成功后,接收备用状态的名称节点发送的注册请求;
向发送注册请求的备用状态的名称节点返回注册响应后,与接收到注册响应的备用状态的名称节点之间建立相应的实时数据流通道。
12.如权利要求8至11任一所述的装置,其特征在于:
所述处理模块用于当所述确定模块确定所述名称节点当前为活动状态时,通过实时数据流通道将数据同步给至少一个备用状态的名称节点,具体是指:
将更新的数据缓冲到所述实时数据流通道;
当所述实时数据流通道的缓冲值达到预定的系统阈值时,通过所述实时数据流通道将缓冲的数据发送给相应的备用状态的名称节点。
13.如权利要求8至11任一所述的装置,其特征在于,所述装置还包括:
检查点处理模块,用于当所述确定模块确定所述名称节点的当前状态为备用状态时,对活动状态的名称节点执行检查点操作。
14.如权利要求9至11任一所述的装置,其特征在于,所述装置还包括:
切换模块,用于在所述名称节点的当前状态为活动状态时,当所述名称节点出现异常情况时,将所述名称节点的当前状态从活动状态切换为备用状态。
15.一种分布式文件系统HDFS的数据处理系统,其特征在于,所述系统包括:至少两个名称节点、每个名称节点对应的切换控制器、集群协调服务器;
其中,所述名称节点包括如权利要求8至14任一所述的分布式文件系统HDFS的数据处理装置;
所述切换控制器用于当与所述集群协调服务器交互后获取到全局锁后,通知对应的名称节点进入活动状态;还用于当与所述集群协调服务器交互后未获取到全局锁后,通知对应的名称节点进入备用状态;以及还用于检测对应的名称节点的运行情况,根据检测结果通知所述对应的名称节点进行状态切换;
所述集群协调服务器用于管理当前状态为活动状态的名称节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610128554.9A CN107168970A (zh) | 2016-03-07 | 2016-03-07 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
PCT/CN2017/073478 WO2017152736A1 (zh) | 2016-03-07 | 2017-02-14 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610128554.9A CN107168970A (zh) | 2016-03-07 | 2016-03-07 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107168970A true CN107168970A (zh) | 2017-09-15 |
Family
ID=59789009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610128554.9A Withdrawn CN107168970A (zh) | 2016-03-07 | 2016-03-07 | 一种分布式文件系统hdfs的管理方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107168970A (zh) |
WO (1) | WO2017152736A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107741966A (zh) * | 2017-09-30 | 2018-02-27 | 郑州云海信息技术有限公司 | 一种节点管理方法及装置 |
CN108737156A (zh) * | 2018-04-08 | 2018-11-02 | 广东睿江云计算股份有限公司 | 一种基于多对等NameNode分布式文件系统及写入方法 |
CN109104321A (zh) * | 2018-09-03 | 2018-12-28 | 福建星瑞格软件有限公司 | 提升Hadoop双机集群下Web_HDFS可用性的方法 |
CN109302448A (zh) * | 2018-08-27 | 2019-02-01 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN110019046A (zh) * | 2017-12-29 | 2019-07-16 | 北京奇虎科技有限公司 | 一种日志落地方法及装置 |
CN111865632A (zh) * | 2019-04-28 | 2020-10-30 | 阿里巴巴集团控股有限公司 | 分布式数据存储集群的切换方法及切换指令发送方法和装置 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851348A (zh) * | 2019-09-29 | 2020-02-28 | 苏州浪潮智能科技有限公司 | 一种hdfs组件高可用性的自动测试方法及系统 |
CN111045923A (zh) * | 2019-10-24 | 2020-04-21 | 苏州浪潮智能科技有限公司 | 一种hbase组件高可用性的测试方法、系统及设备 |
CN112104727B (zh) * | 2020-09-10 | 2021-11-30 | 华云数据控股集团有限公司 | 一种精简高可用Zookeeper集群部署方法及系统 |
CN113824812B (zh) * | 2021-08-27 | 2023-02-28 | 济南浪潮数据技术有限公司 | 一种hdfs服务获取服务节点ip的方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882927A (zh) * | 2012-08-29 | 2013-01-16 | 华南理工大学 | 一种云存储数据同步框架及其实现方法 |
CN103491192A (zh) * | 2013-09-30 | 2014-01-01 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统的Namenode切换方法和系统 |
CN103581332A (zh) * | 2013-11-15 | 2014-02-12 | 武汉理工大学 | HDFS架构及HDFS架构中NameNode节点的压力分解方法 |
US20150046394A1 (en) * | 2013-08-07 | 2015-02-12 | Fujitsu Limited | Storage system, storage control device, and storage medium storing control program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977124B (zh) * | 2010-11-05 | 2013-09-04 | 山东中创软件工程股份有限公司 | 基于ZooKeeper技术的业务集群方法及系统 |
US9607001B2 (en) * | 2012-07-13 | 2017-03-28 | Facebook, Inc. | Automated failover of a metadata node in a distributed file system |
CN103188110B (zh) * | 2013-03-29 | 2016-01-06 | 汉柏科技有限公司 | 基于zookeeper的云平台上服务的热备份方法 |
CN104461792A (zh) * | 2014-12-03 | 2015-03-25 | 浪潮集团有限公司 | 一种解决hadoop分布式文件系统namenode单点故障的ha方法 |
-
2016
- 2016-03-07 CN CN201610128554.9A patent/CN107168970A/zh not_active Withdrawn
-
2017
- 2017-02-14 WO PCT/CN2017/073478 patent/WO2017152736A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882927A (zh) * | 2012-08-29 | 2013-01-16 | 华南理工大学 | 一种云存储数据同步框架及其实现方法 |
US20150046394A1 (en) * | 2013-08-07 | 2015-02-12 | Fujitsu Limited | Storage system, storage control device, and storage medium storing control program |
CN103491192A (zh) * | 2013-09-30 | 2014-01-01 | 北京搜狐新媒体信息技术有限公司 | 一种分布式系统的Namenode切换方法和系统 |
CN103581332A (zh) * | 2013-11-15 | 2014-02-12 | 武汉理工大学 | HDFS架构及HDFS架构中NameNode节点的压力分解方法 |
Non-Patent Citations (1)
Title |
---|
杨帆: "Hadoop平台高可用性方案的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107741966A (zh) * | 2017-09-30 | 2018-02-27 | 郑州云海信息技术有限公司 | 一种节点管理方法及装置 |
CN110019046A (zh) * | 2017-12-29 | 2019-07-16 | 北京奇虎科技有限公司 | 一种日志落地方法及装置 |
CN110019046B (zh) * | 2017-12-29 | 2024-05-14 | 北京奇虎科技有限公司 | 一种日志落地方法及装置 |
CN108737156A (zh) * | 2018-04-08 | 2018-11-02 | 广东睿江云计算股份有限公司 | 一种基于多对等NameNode分布式文件系统及写入方法 |
CN109302448A (zh) * | 2018-08-27 | 2019-02-01 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN109302448B (zh) * | 2018-08-27 | 2020-10-09 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN109104321A (zh) * | 2018-09-03 | 2018-12-28 | 福建星瑞格软件有限公司 | 提升Hadoop双机集群下Web_HDFS可用性的方法 |
CN109104321B (zh) * | 2018-09-03 | 2021-05-18 | 福建星瑞格软件有限公司 | 提升Hadoop双机集群下Web_HDFS可用性的方法 |
CN111865632A (zh) * | 2019-04-28 | 2020-10-30 | 阿里巴巴集团控股有限公司 | 分布式数据存储集群的切换方法及切换指令发送方法和装置 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
CN112199334B (zh) * | 2020-10-23 | 2023-12-05 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017152736A1 (zh) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168970A (zh) | 一种分布式文件系统hdfs的管理方法、装置及系统 | |
US11320991B2 (en) | Identifying sub-health object storage devices in a data storage system | |
CN109542611B (zh) | 数据库即服务系统、数据库调度方法、设备及存储介质 | |
US9753954B2 (en) | Data node fencing in a distributed file system | |
CN106843749B (zh) | 写入请求处理方法、装置及设备 | |
US10360113B2 (en) | Transaction recovery in a transaction processing computer system employing multiple transaction managers | |
US7962915B2 (en) | System and method for preserving state for a cluster of data servers in the presence of load-balancing, failover, and fail-back events | |
US7239605B2 (en) | Item and method for performing a cluster topology self-healing process in a distributed data system cluster | |
CN107832138B (zh) | 一种扁平化的高可用namenode模型的实现方法 | |
CN112199419B (zh) | 一种分布式时序数据库、存储方法、设备及存储介质 | |
US20100023564A1 (en) | Synchronous replication for fault tolerance | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
CN108319618B (zh) | 一种分布式存储系统的数据分布控制方法、系统及装置 | |
CN106325768B (zh) | 一种双机存储系统及方法 | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
JP2012234333A (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
KR20150083938A (ko) | Dds-db 연동 시스템 | |
CN113010496A (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
CN104753987B (zh) | 一种分布式会话管理方法及系统 | |
CN112256477A (zh) | 一种虚拟化容错方法及设备 | |
CN110830582B (zh) | 一种基于服务器集群选主方法和装置 | |
CN115878384A (zh) | 一种基于备份容灾系统的分布式集群及构建方法 | |
CN107038192A (zh) | 数据库容灾方法和装置 | |
CN111291063B (zh) | 主备副本选举方法、系统、计算机设备和存储介质 | |
CN107528703B (zh) | 一种用于管理分布式系统中节点设备的方法与设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170915 |