一种面向流计算系统异常监控的恢复方法及系统与流程

文档序号:17661377发布日期:2019-05-15 22:24阅读:168来源:国知局
一种面向流计算系统异常监控的恢复方法及系统与流程
本发明属于大数据分布式计算领域,具体涉及一种流计算系统中的异常恢复方法。
背景技术
:随着计算机信息技术的不断成熟和应用服务模式的发展创新,物联网、云计算和移动社交相互融合并衍生出实时海量数据。在数据量成几何级数增长的今天,如何对这些实时的数据进行快速的获取、存储和分析已成为工业界和学术界关注的重点。因此,流计算(streamcomputing)技术应运而生,流计算是当前大数据体系中处理实时海量数据的核心技术之一,同时在云计算体系paas中占有重要地位。流计算同最初的数据批量处理(如mapreduce)不同,主要是应对当前物联网、社交网络、互联网金融等一些实时场景中的数据计算和分析。目前,国内外重大的it服务商如google、华为、ibm、阿里巴巴、百度、腾讯及开源组织apache等都纷纷推出了自己的流计算框架体系或研究计划,把流计算作为大数据处理领域中的重要手段之一,与此同时流计算已经在股票交易系统、大型电商等领域发挥了举足轻重的作用。流计算处理的一般是流式数据,鉴于流式大数据具有突发性、高速性、易失性等特征,这将导致流计算长期处于负载较大的计算状态,数据的突发性往往会使流计算系统波动较大,加大了流计算系统发生异常的概率。一方面,流计算处理系统一般要求具有较好的可伸缩性、高吞吐量、低延迟率和状态的一致性,这为流计算系统的稳定运行提出了巨大的挑战。另一方面,随着处理场景的复杂化,对于一些较为繁琐的数据,由于各数据、事件流之间的关联性,需要把复杂事件处理技术引入流系统;在特殊情况下,需要对这些有关联的数据流在一个时间窗口内进行计算、聚合等操作,形成更高抽象层次、符合业务需求的高级事件,这无疑增加了事件的等待率,从而加大了异常发生的可能性。因此如何实现流计算系统资源的有序组织、异常状态的提前感知和错误节点的快速恢复成为研究的重点。在当前的流计算系统中,对系统节点的状态进行实时监控及节点的快速恢复是提高系统高可用性的重要基础。在流计算系统中,现有的恢复方法主要是对节点的计算状态进行备份,当出现异常时进行容错恢复,该容错思想较为被动。此外,对节点的运算状态进行备份,其冗余复杂度较高;且定期备份算子的计算状态,在异常出现时往往会丢失最后一次的计算结果。而异常监测方面最基本的是监测所有的系统指标,这是一笔巨大的监测开销,只是单纯的以静态的方式进行识别诊断,并没有根据系统结构、业务逻辑建立多维监测的状态特征空间,导致监测的开销较大,浪费系统的资源。技术实现要素:针对现有流计算系统异常恢复的不足,本发明提供了一种流计算中的异常恢复方法——一种面向流计算系统异常监控的恢复方法及系统。这种方法能够对流计算系统的状态进行监控,并根据监测结果对节点进行多等级的异常恢复,从而减少容错的冗余度,提高系统的错误恢复效率。为了实现上述方法,本发明提供了一种面向流计算系统异常监控的恢复方法及系统:一种面向流计算系统异常监控的恢复方法及系统,其特征在于:包括计算模块、异常监控模块、备份模块、多等级恢复模块。所述的计算模块,用于执行流计算系统中的计算任务,是整个流式处理的核心功能,在计算模块中运行着用户实际的处理任务,每个任务的实现都要依赖于众多算子的协调配合,一旦有算子出现异常,将会引起故障连锁反应,因此计算模块是异常出现的高频区。所述的异常监控模块,用于定期的监测节点的状态指标并分析处理,并向其他模块发送节点的状态信息,来应对不同等级的状态以恢复系统的可靠运行;同时根据当前节点的工作状态,调整监测周期。所述的备份模块,用于持久化计算节点中间的计算结果,首先会对节点的内部工作状态进行划分,当需要异常恢复时,从备份模块中调用状态数据以及计算需要的数据资源,避免不必要的冗余恢复。所述的多等级恢复模块,用于为处于异常的工作节点提供完整的恢复机制。本发明的具体的恢复过程为:首先收到当前节点的工作状态后,多等级恢复模块根据具体的节点状态选择适合当前节点状态的恢复算法。流计算系统的工作组件较多,节点众多,全部监控会产生较大的开销,本方明提供了一种减小开销的监控方法,包括以下步骤:首先采集工作节点的指标数据,其中包括内存、cpu利用率、i/o读写、算子的吞吐量、节点的心跳包等,监控模块分析器收到指标数据后,首先要选取关键的度量指标,然后利用pca计算监控指标的特征向量以刻画节点的运行状态。得到系统的运行状态后,具体的异常程度采用余弦相似度来代表,其取值范围为[-1,1],用户可根据实际的系统状况设定阈值,然后将节点的状态分为警告、异常、高危等不同程度的节点状态等级。在收集足够的训练数据后,可以优选监控主要度量指标,减小监测的维度,控制开销。在监控过程中,监测周期也可以进行动态的调整,当工作节点正常时,可采用较大的监控周期,而当出现轻微异常时,可缩短监控周期,对指标数据进行密切的关注。本发明的多等级恢复模块,在收到节点的工作状态后,进行相应的异常恢复过程。当收到的节点状态是警告时采用初步异常恢复策略,警告状态表示该节点有可能会发生异常,备份模块为该节点准备一个替代节点,该节点在接收上游节点输出数据的同时也向替代节点重放数据,但该数据不会被发送到下游节点,而是暂时储存,以备失效。当收到的节点状态是高危时,此时高危节点随时会崩溃,恢复模块要为高危节点扩展一个新的替代节点,同时更新高危节点的计算状态并进行计算,若计算速度快于高危节点则进行替代处理。当收到的节点状态是异常时,此时节点已经不能正常完成计算任务,此时恢复模块要为该节点扩展一个新的替代节点,同时备份模块将计算中间结果和计算资源发送给替代节点,用替代节点来完成计算任务。本发明设计了一种面向流计算系统异常监控的恢复方法及系统,首先利用异常监控模块的分析器得出当前节点的工作状态,同时划分异常程度等级,然后多等级恢复模块根据具体的工作状态来切换不同的异常恢复方法。与现有的方法相比,本发明具有以下优点:(1)本发明能够对流计算系统进行主动式的状态监控,克服了以往被动式的检测方法—当故障或异常发生造成系统障碍时才能发现异常所在。本发明提出的异常监控方法能够快速的检测出节点的工作状态,并且对监测度量进行了优化,减小了监测开销,节省了系统的计算资源。(2)多等级的异常恢复机制,一种面向流计算系统异常监控的恢复方法及系统提出了针对系统的不同工作状态制定了相应的多等级恢复策略,分等级的异常恢复机制能够减少错误恢复的时间,减少冗余恢复,提高系统的容错效率。附图说明图1为本发明一种面向流计算系统异常监控的恢复方法及系统框架图图2为本发明中异常监控及多等级恢复流程图图3为本发明中异常监控的工作流程图图4为本发明中异常恢复时视角系统架构图具体实施方式应当指出上述的流程图,可以使本领域的技术人员和读者更全面地理解本发明创造的实施方法,尽管本发明说明书参照附图对本发明创造已进行了详细的说明,但是,本领域的技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换,总之,一切不脱离本发明创造的精神和范围的技术方案及其改进,其均应涵盖在本发明创造专利的保护范围当中。如图1所示,本发明提供了一种面向流计算系统异常的恢复方法及系统,所述系统包括计算模块、异常监控模块、备份模块、多等级恢复模块。在本系统中,计算模块负责执行用户提交的任务;当系统的异常监控模块监测到系统异常或警告以后,监控模块会通知备份模块和多等级恢复模块进行节点的异常恢复,当节点为警告状态时,则采用采用初步异常恢复策略;当节点为高危状态时则采用预防异常恢复策略;当节点出现异常时,则采用完全异常恢复策略。如图2所示为异常监控及多等级恢复流程图,当系统运行以后,相关的数据指标采集机制把采集到的指标发送给监控模块,监控模块中的分析器分析数据并得出当前节点的异常程度;然后与用户设定的阈值对比,确定当前工作节点的异常等级;备份模块和多等级恢复模块在得到当前节点异常等级后,选择相应的恢复策略,进行相关的恢复操作。下面就上述模块进行详细说明:本发明的异常监控模块会监测着整个集群中每个节点的工作状态,主要监控的数据指标包括内存、cpu利用率、i/o读写、算子的吞吐量、节点的心跳包等。异常监控模块的工作时序图如图3所示,监控模块中的分析器收到指标数据后,首先要选取关键的度量指标,然后利用pca计算监控指标的特征向量以刻画节点的运行状态。得到系统的运行状态后,具体的异常程度采用余弦相似度来代表,其取值范围为[-1,1],用户可根据实际的系统状况设定阈值,然后将节点的状态分为警告、异常、高危等不同程度的节点状态等级。在收集足够的训练数据后,可以优选监控主要度量指标,减小监测的维度,控制开销。在监控过程中,监测周期也可以进行动态的调整,当工作节点正常时,可采用较大的监控周期,而当出现轻微异常时,可缩短监控周期,对指标数据进行密切的关注。如图1异常监控模块所示,分析器的详细步骤为:首先对采集到的度量进行关键度量的选取,计算任意两个度量x,y的相关系数,即注:根据上述公式得到度量之间的相关性,如下表所示,当相关度为强相关的时候,我们用一个度量反映其他度量,从而减少监测数量。相关系数r2相关强度[0,0.2)[0,0.04)不相关[0.2,0.4)[0.04,0.16)一般[0.4,0.6)[0.16,0.36)弱相关[0.6,0.8)[0.36,0.64)相关[0.8,1][0.64,1]强相关然后在确定监测的度量后,利用pca计算监控指标的特征向量以刻画节点的运行状态,得到系统的运行状态后,具体的异常程度采用余弦相似度来代表,其取值范围为[-1,1],具体表示为此时我们得到系统的异常程度后,进行监测周期的调控,当工作节点正常时,可采用较大的监控周期,而当出现轻微异常时,可缩短监控周期,对指标数据进行密切的关注,并且当异常程度越大时,越要相应的缩短监测周期,增加监测的粒度。备份模块主要用来持久化工作节点的计算状态数据,在流计算系统中,一项计算任务往往是通过有向无环图进行描述的。每个算子的计算结果都要进行持久化保存,以备恢复时使用;同时,每个算子计算后都有一个处理状态,如果全部进行持久化而不进行清除工作将会占用较多的存储空间,因此,备份模块要阶段性的把算子的旧的处理状态进行清除。于此,备份模块中的预备计算资源池负责为需要复制的节点配置相关资源,其作用类似于线程池,提前配置好工作节点,以提高工作节点的效率。备份模块对于需要替代的节点,并不是全部复制,而是先对节点内部状态进行划分,在元组或数据重放的时候可以减少不必要的冗余重放,提高恢复效率。多等级恢复模块是整个系统的核心模块,此模块主要完成系统的容错功能,对于处于不同工作状态的节点,本发明都有与之对应的异常恢复策略。若某一时刻恢复模块收到当前节点的状态是正常的,此时不采取任何恢复策略,同时监控模块增大监测周期,以便更多的系统资源用于任务的计算与重要数据的备份。若某一时刻恢复模块收到当前节点的状态是警告时则采用初步异常恢复策略,警告状态表示该节点有可能会发生异常,备份模块为该节点准备一个替代节点,该节点在接收上游节点输出数据的同时也向替代节点重放数据,但该数据不会被发送到下游节点,而是暂时储存,以备失效。若某一时刻恢复模块收到当前节点的状态是高危时,此时高危节点随时会崩溃,恢复模块要为高危节点扩展一个新的替代节点,同时更新高危节点的计算状态并进行计算(考虑到节点大部分工作状态都是正常的,在本恢复策略中,虽然两个节点同时工作会浪费资源,但相对出现概率较低);若替代节点计算速度快于高危节点则进行替代处理,原高危节点被系统收回到预备计算资源池。若某一时刻恢复模块收到的节点状态是异常时,此时节点已经不能正常完成计算任务,此时恢复模块要为该节点扩展一个新的替代节点,同时备份模块将计算中间结果和计算资源发送给替代节点,用替代节点来完成计算任务,同时原异常节点被系统收回到预备计算资源池。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1