一种面向流计算系统异常感知的容错方法及系统技术方案

技术编号:15639021 阅读:188 留言:0更新日期:2017-06-15 20:54
本发明专利技术公开了一种面向流计算系统异常感知的容错方法及系统,包括计算模块、系统监控模块、动态扩展模块、错误恢复模块和计算资源池模块。系统监控模块周期性的检测系统中各个工作节点的计算状态,当检测到工作节点的状态为警告时,通过系统监控模块、动态扩展模块、错误恢复模块及计算资源池模块之间的相互配合,对处于警告状态的工作节点进行预防性的错误恢复;系统监控模块进一步监控处于警告状态的工作节点,根据工作节点的状态从警告分别到错误、正常和异常之间转变,错误恢复模块做出不同的处理。这是一种在实现流计算系统中对用户透明的容错方法;本发明专利技术具有完整的错误恢复过程,并且提高了流计算系统的错误恢复效率。

【技术实现步骤摘要】
一种面向流计算系统异常感知的容错方法及系统
本专利技术属于大数据分布式计算领域,具体涉及流计算系统中的一种容错方法。
技术介绍
流计算(StreamComputing)是近年来在大数据处理领域尤其受到重视的一项核心技术,同时流计算服务也是云计算体系PaaS中一项重要的平台能力,它的主要计算特征是可以连续处理各种网络实体所生成的实时动态数据流。不同于Mapreduce和Pregel等大数据批处理系统,它可以使公共服务系统,企业运营系统,以及客户系统获得在线实时的高性能、海量吞吐等大数据应用的多种关键能力。此类系统在各类国际顶级学术会议中获得高度关注,例如SIGMOD、SIGKDD、VDSL、NSDI等等;从生产应用方面来看,流计算已经初步走入大型电信系统,大型互联网数据处理,电力电网系统,银行金融交易系统等关系到国计民生的重要应用领域。分布式的流计算系统处理的是实时性的大数据流(流式大数据)。流式大数据具有实时性、易失性、突发性、无序性和无限性。基于以上特性,流计算系统必须长期处于计算状态且计算负载的浮动较大,系统较不稳定。所以,流计算系统有较高的故障率。容错机制是可信的流计算系统不可或缺的一部分。并且,流计算系统是一个实时计算系统,复杂且低效的容错机制会对流计算系统的计算效率造成很大的影响。总的来说,高效的容错机制是流计算系统可信且高效的保证之一。在流计算系统中,现有容错方法的主要思想是对计算元组及算子状态的周期性上游备份。具体来说,高可用性方法(PreciseRecovery、RollbackRecovery和GapRecovery)就是应用该思想的典型容错方法。其中,PreciseRecovery具有最强的错误恢复保证;GapRecovery是会丢失一部分状态的;RollbackRecovery在这两者中间。在高可用性算法的基础上,有一种基于PassiveStandby和ActiveStandby混合的容错方法。当系统发生错误后用ActiveStandby方法进行容错,因为ActiveStandby方法相对更加高效;当系统没发生错误时用PassiveStandby方法进行状态备份,因为PassiveStandby方法相对有较低的I/O消耗。此外,还有一种多窗口的上游备份容错方法,上游节点会备份下游节点的状态并且一直更新,发生错误的节点会向上游节点请求最新的备份状态,并且上游节点会重放已经丢失的元组。值得注意的是,该方法把节点的状态分为多个窗口,通过对各个窗口状态的异步备份来提高流计算系统的计算效率。但上述的方法都有一定的缺点。这些方法都是当系统发生错误并且这些错误被检测到以后才进行错误恢复,这使得系统的错误恢复时间比较长。并且,系统在对算子的状态进行上游备份时,为了保证算子状态的一致性,必须冻结当前算子,这也对系统的计算效率造成了一定的影响。
技术实现思路
针对现有的容错机制的不足,本专利技术提出了基于错误预处理的容错方法——一种面向流计算系统异常感知的容错方法及系统。这种方法能够对流计算系统中的错误做一定的预先处理,来提高系统的错误恢复效率。为了实现上述目的本专利技术提供一种面向流计算系统异常感知的容错系统:一种面向流计算系统异常感知的容错系统,其特征在于:包括计算模块、系统监控模块、动态扩展模块、错误恢复模块和计算资源池模块;其中所述系统监控模块和动态扩展模块部署在管理节点上,计算模块和错误恢复模块部署在所有的工作节点上。所述计算模块,用于执行流计算系统中的查询任务;是流计算系统的核心部分,也是流计算系统最容易出错的地方。所述系统监控模块,用于周期性的监控各个工作节点的状态,并向动态扩展模块和错误恢复模块发送指令,来应对不同的状态以保障系统高效可靠的运行。主要监控的信息包括集群中各个工作节点的心跳包、CPU利用率等。所述动态扩展模块,用于为处于警告状态的工作节点动态的扩展一个容错节点;以便系统进行进一步的错误恢复工作;同时当工作节点的计算能力不够时,可以为计算能力不足的工作节点动态的扩展若干节点,来提高系统的计算效率。首先,把工作节点内部的路由状态和输出队列的状态备份到它的上游节点中。当系统的拓扑不发生变化时,工作节点的路由状态和输出队列状态是不会发生变化的。只有当系统的拓扑发生变化以后,如某个工作节点因为计算能力不足而发生动态扩展以后,相关工作节点的路由状态和输出队列状态就会发生相应的变化。这时,存储在上游节点中的相关状态就必须要更新。如果某个算子需要动态扩展,只需要将上游备份的相关状态平滑的迁移到新的节点上就可以完成动态扩展。所述错误恢复模块,用于对发生错误的工作节点进行容错处理;本专利技术的容错处理是建立在上游备份基础上的。当上游节点把相关元组(流计算系统中数据的最小单元)发送到当前节点以后,这些元组不会在上游节点的输出队列中删除,而是继续存储在它的输出队列里面。只有当前节点计算完这些元组,并且把计算结果发送到下游节点以后,上游节点才会把输出队列中的相关元组删除。当节点发生错误以后,只要上游节点重放没有被删除的元组,重新计算这些元组就可以实现流计算系统的错误恢复。所述计算资源池模块,用于为动态扩展模块提供节点资源;在该计算资源池模块中预先配置一定数量节点,当系统需要动态扩展时,动态扩展模块直接在计算资源池模块中调用新节点。这样可以提高系统动态扩展的效率。当系统出现错误以后再处理错误的方法显得过于被动。本专利技术还提供一种面向流计算系统异常感知的容错方法,包括以下步骤:系统监控模块周期性的监控流计算系统中各个节点状态;当发现有工作节点处于警告状态时,通知动态扩展模块和错误恢复模块对处于警告状态的节点进行预防性的错误恢复。动态扩展模块为处于警告状态的节点动态性的扩展一个容错节点。系统监控模块进一步监控处于警告状态的节点,如果该节点的状态由警告转为错误,则通知错误恢复模块,错误恢复模块直接用容错节点代替该节点,完成系统的错误恢复;完成错误恢复以后,容错节点将成为系统中的一个工作节点,而被替换掉的处于错误状态的工作节点将会从系统的工作节点中删除。如果该节点的状态由警告转为正常,则通知错误恢复模块停止对该节点的预防性错误恢复;但是,错误恢复模块并不会马上删除相关的容错节点,如果在接下来的连续的m个周期里面该工作节点一直处于正常状态,则相关的容错节点会被删除。如果该节点的状态由警告转为异常,则通知错误恢复模块,错误恢复模块一直对比处于异常状态的工作节点和容错点的计算进度,当检测到容错节点的计算进度快于处于异常状态的节点以后,用容错节点代替处于异常状态的节点,而处于异常状态的工作节点将会被系统删除。在上述方法中,判断工作节点处于警告状态的方法为:当系统监控模块在周期性接收工作节点心跳包的过程中,若第一次未接收到任意一个工作节点的心跳包,则该节点的状态为警告状态。在上述方法中,系统监控模块进一步监控处于警告状态的节点判断该节点状态包括:(1)当系统监控模块检测到工作节点处于警告状态以后,系统监控模块在连续的n个周期都没有接收到该处于警告状态的工作节点的心跳包,其中n>1,则该工作节点的状态由警告转为错误;(2)当系统监控模块检测到工作节点处于警告状态以后,在接下来的连续m个周期里面,系统监控模块都收到了该工本文档来自技高网
...
一种面向流计算系统异常感知的容错方法及系统

【技术保护点】
一种面向流计算系统异常感知的容错系统,其特征在于:包括计算模块、系统监控模块、动态扩展模块、错误恢复模块和计算资源池模块;其中所述系统监控模块和动态扩展模块部署在管理节点上,计算模块和错误恢复模块部署在所有的工作节点上;所述计算模块,用于执行流计算系统中的查询任务;所述系统监控模块,用于周期性的监控各个工作节点的状态,并向动态扩展模块和错误恢复模块发送指令;所述动态扩展模块,用于为处于警告状态的工作节点动态的扩展一个容错节点;所述错误恢复模块,用于对发生错误的工作节点进行容错处理;所述计算资源池模块,用于为动态扩展模块提供节点资源。

【技术特征摘要】
1.一种面向流计算系统异常感知的容错系统,其特征在于:包括计算模块、系统监控模块、动态扩展模块、错误恢复模块和计算资源池模块;其中所述系统监控模块和动态扩展模块部署在管理节点上,计算模块和错误恢复模块部署在所有的工作节点上;所述计算模块,用于执行流计算系统中的查询任务;所述系统监控模块,用于周期性的监控各个工作节点的状态,并向动态扩展模块和错误恢复模块发送指令;所述动态扩展模块,用于为处于警告状态的工作节点动态的扩展一个容错节点;所述错误恢复模块,用于对发生错误的工作节点进行容错处理;所述计算资源池模块,用于为动态扩展模块提供节点资源。2.利用权利要求1所述系统的一种面向流计算系统异常感知的容错方法,包括以下步骤:系统监控模块周期性的监控流计算系统中各个节点状态;当发现有工作节点处于警告状态时,通知动态扩展模块和错误恢复模块对处于警告状态的节点进行预防性的错误恢复;动态扩展模块为处于警告状态的节点动态性的扩展一个容错节点;系统监控模块进一步监控处于警告状态的节点,如果该节点的状态由警告转为错误,则通知错误恢复模块,错误恢复模块直接用容错节点代替该节点,完成系统的错误恢复;如果该节点的状态由警告转为正常,则通知错误恢复模块停止对该节点的预防性错误恢复;如果该节点的状态由警告转为异常,则通知错误恢复模块,错误恢复模块一直对比处于异常状态的工作节点和容错点的计算进度,当检测到容错节点的计算进度快于处于异常状态的节点以后,用容错节点代替处于异常状态的节点。3.根据权利要求2所述一种面向流计算系统异常感知的容错方法,其特征在于,所述判断工作节点处于警告状态的方法为:当系统监控模块在周期性接收工...

【专利技术属性】
技术研发人员:徐光侠李培真何李杰常光辉刘俊解绍词李伟凤吴新凯张令浩
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

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

1