一种HDFS写故障恢复方法、计算机设备及存储介质技术

技术编号:39272740 阅读:13 留言:0更新日期:2023-11-07 10:51
本发明专利技术提出了一种HDFS写故障恢复方法、计算机设备及存储介质,其中,方法包括:在HDFS系统中预设任务管理器和数据重写队列,并执行以下步骤:通过任务管理器监控写请求的数据写入过程;响应于监控到数据节点抛出异常,由任务管理器截获异常并生成唯一的故障标记;由任务管理器控制将写请求中的数据并转存到预设的数据重写队列中,并利用故障标记分别标记数据以及数据节点;跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入;由任务管理器从数据重写队列中获取数据,并根据故障标记重新向对应的数据节点发起数据写入操作。本发明专利技术能够通过任务处理器拦截异常,避免HDFS系统在发现异常后即执行数据块回收,并能够利用重写队列实现单点恢复。写队列实现单点恢复。写队列实现单点恢复。

【技术实现步骤摘要】
一种HDFS写故障恢复方法、计算机设备及存储介质


[0001]本专利技术涉及数据恢复
,尤其涉及一种HDFS写故障恢复方法、计算机设备及存储介质。

技术介绍

[0002]大数据平台的各个计算组件,诸如Hive、HBase、Spark等,其所有业务数据均存储于HDFS((Hadoop Distributed File System)分布式文件系统中,HDFS的底层数据的完整性与容灾能力直接影响上层大数据业务的进行。而目前,HDFS的数据容灾能力仅限于已生成的数据块,即写业务完成后,对已生成的结果数据进行备份维护,而无法对写过程中的故障数据进行恢复。然而,在写任务的过程中,一旦某个数据块发生异常,则会直接导致整个业务失败。同时该异常数据块之前所产出的正常数据块也会一并被清除,只能重头开始再次启动业务。而这样势必会造成过高的时间消耗,不符合大数据的高时效性需求。
[0003]因此,如何降低HDFS数据写入故障的恢复时间是本领域亟需解决的技术问题。

技术实现思路

[0004]为了提升HDFS系统写入故障的恢复效率,在本专利技术的第一方面,提出了一种HDFS写故障恢复方法,所述方法包括在HDFS系统中预设任务管理器和数据重写队列,并执行以下步骤:通过所述任务管理器监控写请求的数据写入过程;响应于监控到数据节点抛出异常,由所述任务管理器截获所述异常并生成唯一的故障标记;由所述任务管理器控制将所述写请求中的数据并转存到预设的数据重写队列中,并利用所述故障标记分别标记所述数据以及所述数据节点;跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入;由所述任务管理器从所述数据重写队列中获取数据,并根据所述故障标记重新向对应的数据节点发起数据写入操作。
[0005]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:在跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入之前,向所有客户端返回带有所述故障标记的数据节点的节点信息以使得所述客户端暂时不再请求向带有所述故障标记的数据节点请求写入数据。
[0006]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:为所述数据重写队列中的数据分配重写计数;响应于所述任务管理器基于所述数据重写队列的数据重写失败,对所述重写计数加1。
[0007]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:预设重写次数阈值;响应于所述重写计数达到所述重写次数阈值,从所述数据重写队列中删除所述数据并清除所述对应数据节点的故障标记,并获取带有故障标记的数据节点的节点信息并与截获的异常一起上报到HDFS系统。
[0008]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:并发执行对所述写请求的剩余数据的写入操作以及基于所述数据重写队列的数据重写操作。
[0009]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:将所述节点信息与所述异常发送至前端进行显示。
[0010]在一个或多个实施例中,所述数据节点为block数据块,所述节点信息包所属文件、起始位置、数据长度、偏移量以及故障时间。
[0011]在一个或多个实施例中,所述数据重写队列为Kafka消息队列。
[0012]在本专利技术的第二方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器中存储有可执行的计算机程序,所述计算机程序被所述至少一个处理器执行时用于实现以下步骤,包括在HDFS系统中预设任务管理器和数据重写队列,并执行以下步骤:通过所述任务管理器监控写请求的数据写入过程;响应于监控到数据节点抛出异常,由所述任务管理器截获所述异常并生成唯一的故障标记;由所述任务管理器控制将所述写请求中的数据并转存到预设的数据重写队列中,并利用所述故障标记分别标记所述数据以及所述数据节点;跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入;由所述任务管理器从所述数据重写队列中获取数据,并根据所述故障标记重新向对应的数据节点发起数据写入操作。
[0013]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:在跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入之前,向所有客户端返回带有所述故障标记的数据节点的节点信息以使得所述客户端暂时不再请求向带有所述故障标记的数据节点请求写入数据。
[0014]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:为所述数据重写队列中的数据分配重写计数;响应于所述任务管理器基于所述数据重写队列的数据重写失败,对所述重写计数加1。
[0015]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:预设重写次数阈值;响应于所述重写计数达到所述重写次数阈值,从所述数据重写队列中删除所述数据并清除所述对应数据节点的故障标记,并获取带有故障标记的数据节点的节点信息并与截获的异常一起上报到HDFS系统。
[0016]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:并发执行对所述写请求的剩余数据的写入操作以及基于所述数据重写队列的数据重写操作。
[0017]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:将所述节点信息与所述异常发送至前端进行显示。
[0018]在一个或多个实施例中,所述数据节点为block数据块,所述节点信息包所属文件、起始位置、数据长度、偏移量以及故障时间。
[0019]在一个或多个实施例中,所述数据重写队列为Kafka消息队列。
[0020]在本专利技术的第三方面,提出了一种可读存储介质,包括:可执行的计算机程序,所述计算机程序被执行器执行时用于实现以下步骤,包括:在HDFS系统中预设任务管理器和数据重写队列,并执行以下步骤:通过所述任务管理器监控写请求的数据写入过程;响应于监控到数据节点抛出异常,由所述任务管理器截获所述异常并生成唯一的故障标记;由所述任务管理器控制将所述写请求中的数据并转存到预设的数据重写队列中,并利用所述故障标记分别标记所述数据以及所述数据节点;跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入;由所述任务管理器从所述数据重写队列中获取数据,并根据所述
故障标记重新向对应的数据节点发起数据写入操作。
[0021]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:在跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入之前,向所有客户端返回带有所述故障标记的数据节点的节点信息以使得所述客户端暂时不再请求向带有所述故障标记的数据节点请求写入数据。
[0022]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:为所述数据重写队列中的数据分配重写计数;响应于所述任务管理器基于所述数据重写队列的数据重写失败,对所述重写计数加1。
[0023]在一个或多个实施例中,本专利技术的一种HDFS写故障恢复方法还包括:预设重写次数阈值;响应于所述重写计数达到所述重写次数阈值,从所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种HDFS写故障恢复方法,其特征在于,所述方法包括在HDFS系统中预设任务管理器和数据重写队列,并执行以下步骤:通过所述任务管理器监控写请求的数据写入过程;响应于监控到数据节点抛出异常,由所述任务管理器截获所述异常并生成唯一的故障标记;由所述任务管理器控制将所述写请求中的数据并转存到预设的数据重写队列中,并利用所述故障标记分别标记所述数据以及所述数据节点;跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入;由所述任务管理器从所述数据重写队列中获取数据,并根据所述故障标记重新向对应的数据节点发起数据写入操作。2.根据权利要求1所述的HDFS写故障恢复方法,其特征在于,所述方法还包括:在跳过对当前数据节点的数据写入并执行对下一数据节点的数据写入之前,向所有客户端返回带有所述故障标记的数据节点的节点信息以使得所述客户端暂时不再请求向带有所述故障标记的数据节点请求写入数据。3.根据权利要求1所述的HDFS写故障恢复方法,其特征在于,所述方法还包括:为所述数据重写队列中的数据分配重写计数;响应于所述任务管理器基于所述数据重写队列的数据重写失败,对所述重写计数加1。4.根据权利要求2所述的HDFS写故障恢复方法,其特征在于,所述方法还包括:预设重写次数阈值;响应于所述重写计数达到所述重写次数阈值,从...

【专利技术属性】
技术研发人员:和思扬黄召军王帅阳
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1