System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种分布式ETL节点故障检测的方法和装置制造方法及图纸_技高网

一种分布式ETL节点故障检测的方法和装置制造方法及图纸

技术编号:40958983 阅读:2 留言:0更新日期:2024-04-18 20:36
本发明专利技术涉及数据库领域,特别是涉及一种分布式ETL节点故障检测的方法和装置。主要包括:作为主调度器的节点启动时,在元数据库的服务表中插入或更新自身的信息;不作为主调度器的节点启动时,向主调度器注册自身,主调度器根据节点注册时的信息,在服务表中插入或更新相应节点的信息;节点开启假死故障检测线程,假死故障检测线程根据接收服务表中记录的节点信息,接收每个节点的心跳异常通知,并恢复存在网络故障的节点正常心跳。本发明专利技术可以每个节点都使用独立的节点假死故障检测线程处理节点是否网络故障或系统繁忙造成假死现象,同时,使用元数据库中的服务表记录节点的状态,使其它节点能够获取到故障信息。

【技术实现步骤摘要】

本专利技术涉及数据库领域,特别是涉及一种分布式etl节点故障检测的方法和装置。


技术介绍

1、抽取-转换-装载(extract,transform,load,简写为etl)是数据处理和构建数据仓库的一个重要工具软件,它完成异构数据源的由源数据库抽取、对数据进行清洗转换、加载至目的数据库的过程。传统的etl一般是把流程发布到一个集中的etl服务器节点上运行,所有的流程或流程内组件的运行采用多线程机制,再多的流程也只能在一个单一节点运行,并且一个大数据的处理流程,也无法提高数据处理的性能。基于传统集中式etl的缺点,分布式etl脱颖而出。分布式etl一般由一个或多个充当管理者角色的节点来管理系统中的节点(调度器),一个或多个节点执行etl流程的节点(执行器)组成。调度器分发etl流程到执行器,由执行器运行etl流程。

2、与传统单机etl最大不同,分布式etl必须考虑到各个节点的故障容错处理。比如,调度器作为整个系统的任务分配调度者,一旦宕机,必须有另外的节点接管调度器角色;某个执行器故障了,调度器不能再调度流程到该执行器运行。必须有一套稳定的节点管理方案,确保分布式etl环境中,任一节点宕机,不影响整个系统的运行以及监控。调度器虽然不运行具体的etl流程,但是在整个分布式系统中的etl流程调度以及监控、资源管理等方面起着至关重要的作用。一个稳定可靠的分布式etl系统必须启用多调度器机制,也就是一个主调度器,一个或多个备用调度器。由于系统中只允许存在一个主调度器,主备调度器的故障检测,也成为系统是否稳定的关键点、关键技术。一般情况下,分布式环境使用心跳检测的方式,比如发送心跳数据报的方式来判断节点的状态,一个节点在心跳间隔内未收到对方节点的心跳数据报,就判定对方节点故障。在网络不稳定或系统繁忙时,存在假死现象,可能存在误判。

3、鉴于此,如何克服现有技术所存在的缺陷,解决分布式etl环境中故障检测不便的现象,是本
待解决的问题。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本专利技术解决了分布式etl环境中故障检测不便的问题。

2、本专利技术实施例采用如下技术方案:

3、第一方面,本专利技术提供了一种分布式etl节点故障检测的方法,具体为:主调度器启动时,在元数据库的服务表中插入或更新自身的信息;非主调度器启动时,向主调度器注册自身,主调度器根据节点注册时的信息,在服务表中插入或更新相应节点的信息;节点开启假死故障检测线程,假死故障检测线程根据接收服务表中记录的主调度器与非主调度器信息,接收每个节点的心跳异常通知,并恢复存在网络故障的节点正常心跳。

4、优选的,所述接收每个节点的心跳异常通知,并恢复存在网络故障的节点正常心跳,具体包括:非主调度器节点的假死故障检测线程等待主调度器与心跳异常通知;收到异常通知后,访问元数据库,根据访问结果,恢复正常心跳。

5、优选的,所述根据访问结果,恢复正常心跳,具体包括:若访问不成功,节点的工作状态为网络故障,发出网络故障告警;若访问成功,根据节点的类型,恢复主调度器与非主调度器之间的正常心跳。

6、优选的,节点的类型包括:主调度器、备用调度器和执行器,所述根据节点的类型,恢复主调度器与非主调度器之间的正常心跳,具体包括:当节点为备用调度器或执行器时,获取当前主调度器,通知节点心跳线程正常的主调度器,恢复节点和主调度器之间的正常心跳;当节点为主调度器时,判断主调度器是否需要切换至备用调度器,并根据判断结果进行切换,从而恢复主调度器与非主调度器之间的正常心跳。

7、优选的,所述获取当前主调度器,具体包括:节点的假死故障检测线程访问元数据中的服务表,获取主调度器的信息,按照获取到的信息通过远程服务调用方式访问主调度器;若能够正常访问,并且该主调度器工作正常,将该主调度器作为当前调度器,并且通知心跳线程;若不能正常访问,按照指定休眠周期将故障检测线程进行休眠,并在每个周期的休眠结束再次尝试访问主调度器,直至能够正常访问。

8、优选的,当节点为备用调度器时,所述获取当前主调度器,还包括:当获取到的当前主调度器为节点自身时,判断节点是否已被设置为主调度器;若已被设置为主调度器,将当前主调度器设置为节点自身,并结束节点上的假死故障检测线程。

9、优选的,所述判断主调度器是否需要切换至备用调度器,并根据判断结果进行切换,具体包括:从服务表中获取节点的信息,判断节点的类型是否为备用调度器;当节点的类型为备用调度器时,将节点切换为备用调度器,停止心跳数据报的发送,开启备用调度器的假死故障检测线程;当节点的类型为主调度器时,不切换节点类型。

10、优选的,当节点的工作状态为故障,所述假死故障检测线程根据主调度器的异常心跳恢复正常心跳之后,还包括:主调度器将流程调度至相应的执行器,流程运行开始或结束时,执行器将流程的运行状态通知主调度器;主调度器根据接收到的运行状态缓存相应的运行实例,并在元数据库中生成相应的运行日志,使用运行日志缓存每个流程的信息,以及不同流程的父子关系,并获取与流程运行状态一致的监控信息;主调度器根据故障的监控信息判断执行器的故障状态,当任一个执行器上的流程出现故障时,主调度器根据运行日志重启该执行器上的流程当主调度器检测到执行器故障时,通过主调度器缓存的运行实例处理执行器中的流程,使处理后的流程运行状态与监控信息一致;当主调度器重启或主调度器切换时,通过流程运行日志复活所有执行器中正在运行流程实例,使新的主调度器管理的所有流程运行实例与故障之前的主调度器完全一致。

11、所述主调度器启动之前,还包括:在当前调度器启动时,和/或,在当前调度器尝试切换为主调度器时,当前调度器在元数据库中创建主调度器竞争表,以主调度器竞争表作为不同调度器间的分布式互斥锁;当前调度器成功创建主调度器竞争表,获取分布式互斥锁后,根据当前调度器的信息和元数据库中存储的已经存在的主调度器信息确定当前调度器是否能够设置为主调度器。

12、另一方面,本专利技术提供了一种分布式etl节点故障检测的装置,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的分布式etl节点故障检测的方法。

13、与现有技术相比,本专利技术的有益效果在于:每个节点都使用独立的故障监测线程处理节点是否网络故障或系统繁忙造成假死现象,同时,使用元数据库中的服务表记录节点的状态,使其它节点能够获取到故障信息。

本文档来自技高网...

【技术保护点】

1.一种分布式ETL节点故障检测的方法,其特征在于,包括:

2.根据权利要求1所述的分布式ETL节点故障检测的方法,其特征在于,所述接收每个节点的心跳异常通知,并恢复存在网络故障的节点正常心跳,具体包括:

3.根据权利要求2所述的分布式ETL节点故障检测的方法,其特征在于,所述根据访问结果,恢复正常心跳,具体包括:

4.根据权利要求3所述的分布式ETL节点故障检测的方法,其特征在于,节点的类型包括:主调度器、备用调度器和执行器,所述根据节点的类型,恢复主调度器与非主调度器之间的正常心跳,具体包括:

5.根据权利要求4所述的分布式ETL节点故障检测的方法,其特征在于,所述获取当前主调度器,具体包括:

6.根据权利要求4所述的分布式ETL节点故障检测的方法,其特征在于,当节点为备用调度器时,所述获取当前主调度器,还包括:

7.根据权利要求4所述的分布式ETL节点故障检测的方法,其特征在于,所述判断主调度器是否需要切换至备用调度器,并根据判断结果进行切换,具体包括:

8.根据权利要求1所述的分布式ETL节点故障检测的方法,其特征在于,当节点的工作状态为故障,所述恢复存在网络故障的节点正常心跳之后,还包括:

9.根据权利要求1所述的分布式ETL节点故障检测的方法,其特征在于,所述主调度器启动之前,还包括:

10.一种分布式ETL节点故障检测的装置,其特征在于:

...

【技术特征摘要】

1.一种分布式etl节点故障检测的方法,其特征在于,包括:

2.根据权利要求1所述的分布式etl节点故障检测的方法,其特征在于,所述接收每个节点的心跳异常通知,并恢复存在网络故障的节点正常心跳,具体包括:

3.根据权利要求2所述的分布式etl节点故障检测的方法,其特征在于,所述根据访问结果,恢复正常心跳,具体包括:

4.根据权利要求3所述的分布式etl节点故障检测的方法,其特征在于,节点的类型包括:主调度器、备用调度器和执行器,所述根据节点的类型,恢复主调度器与非主调度器之间的正常心跳,具体包括:

5.根据权利要求4所述的分布式etl节点故障检测的方法,其特征在于,所述获取当前主调度器...

【专利技术属性】
技术研发人员:高东升梅纲付晨玺
申请(专利权)人:武汉达梦数据库股份有限公司
类型:发明
国别省市:

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

1