一种实时流计算流速感知弹性执行容错系统的制作方法_2

文档序号:8472852阅读:来源:国知局
,将多个资源利用率低的节点上的处理单元合并或迀移到其中一个节点上,减少处理单元并行数,减少节点。
[0017](5)状态管理模块,用于阶段性地将处理节点的处理状态保存在持久化存储系统中,并异步地对旧的状态版本进行清除以腾出存储空间,节约存储资源。在弹性扩展和收缩时负责分割和合并相应的处理状态。在恢复时负责寻回相应处理状态。
[0018](6)错误检测模块,用于检测节点失效,系统异常,运行错误等。
[0019](7)恢复协调模块,用于当错误发生且对应用、系统产生影响时,与元组分发管理模块、部署管理模块、弹性执行协调模块、集群管理模块、状态管理模块一起对应用或者系统进行快速恢复。
[0020](8)集群管理模块,系统部署运行在集群之上,用于扩展需要新节点时向部署管理模块提供新节点。当有多余的节点退出系统时,用于节点回收。
[0021](9)应用管理模块,用于将用户编写的流应用转换成逻辑拓扑图,交予部署管理模块进行应用部署。
[0022]与现有技术相比,本方法具有以下的有益效果:
[0023](I)精细化的处理控制
[0024]流速感知的引入,使系统能够实时感知节点处理效率,分发系统中元组的排队延迟(分发效率),从而通过分发管理、弹性执行机制产生相应的对策以达到精细化控制元组在每个处理阶段所花费的时间的目的。系统能够对元组的节点处理时间和排队时间进行设限,一旦达到上限,高效的调整机制将被触发,改变元组分发情况,增加处理线程、处理进程、处理节点,从而对处理延迟做出保证。
[0025](2)细粒度而高效的分发管理
[0026]分发管理决定了系统中每个元组将被发送给下游的哪个处理单元。依据下游处理单元的处理效率,将元组发送给最快处理它的处理单元,在保证低延迟的同时也提高集群资源利用率。当感知元组流经下游处理单元流速稳定、分发系统中元组流速稳定时,分发管理将按批快速发送元组,以此提高分发效率,加快应用处理。另外,分发管理能够根据下游处理单元并行度灵活改变元组的发送策略。
[0027](3)高效的执行机制
[0028]流计算系统应该能够提供一个自适应应对流速变化的执行机制,并对用户透明同时保持低处理延迟。本发明中的弹性执行协调提供一种快速应对流速变化的执行机制,它能够根据流速的变化、元组的处理延迟的变化改变处理单元的并行度;能够判断机器节点的资源使用率过低,合并节点处理,减少节点的使用,提高集群资源利用率。资源可用性的变化能够通过流速的变化进行感知,其背后原因此发明不作另外讨论。
[0029](4)优秀的容错机制
[0030]持久存储系统中存储着系统处理状态的检查点及此检查点时间以来节点将要处理的元组,当系统中处理节点失效时,可快速寻回节点状态,直接从分发系统中重发检查点以来的元组,减少了恢复计算量,并且结合弹性执行协调模块可以做到并行快速恢复。另夕卜,对于无状态的管理进程,当进程被意外杀死时,简单重启即可。
[0031](5)应用的稳定性与延迟保证
[0032]系统通过流速感知、弹性执行、容错等特性给用户提供长期稳定的应用运行环境,通过精确控制元组在每个处理阶段处理时间,从而保证应用的处理延迟。
【附图说明】
[0033]图1是本发明实时计算流速感知弹性执行容错系统整体架构图;
[0034]图2是本发明中用户视角系统示意图;
[0035]图3是本发明中运行时视角系统架构图;
[0036]图4是本发明中弹性执行流程图;
[0037]图5是本发明中容错恢复流程图。
【具体实施方式】
[0038]为了使本发明的目的、技术方案及优点更加明了,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0039]本发明的目的是保持当前流计算系统的用户易编写、易部署、可扩展特性的同时增加其稳定性、低延迟保证和容错保证。流计算系统提供的API应尽可能简单,如Storm只提供spout,blot,topology等简单API供用户编写应用程序、描述处理逻辑。本发明延续了流计算系统部署对用户透明的特性,但增加了弹性执行机制,以避免节点过载或者多个节点低效率运行,提高资源使用率的同时也发挥了保证低延迟的作用,此是本发明的重点之一。为了实时探测应用运行情况,系统增加了流速感知模块,用以感知节点流速变化,分发系统元组流速变化情况,给系统平稳运行提供了保证,也是本发明的特色。本发明强化了传统流计算系统的容错机制,阶段性地保存节点上处理单元的处理状态和此时间节点后相应处理单元应该处理的元组。当错误发生时,能最快的恢复系统运行,避免了传统流计算系统从原始阶段至恢复单元多个阶段重新计算,此也是本发明的重点。
[0040]如图1所示,本发明提供了一种实时流计算流速感知弹性执行容错系统,所述系统包括部署管理模块、流速感知模块、元组分发管理模块、弹性执行协调模块、状态管理模块、错误检测模块、恢复协调模块、集群管理模块、应用管理模块。
[0041]在本系统中,集群管理模块、应用管理模块、部署管理模块、协调恢复模块、弹性执行协调模块相应进程都运行在管理节点上。由于上述模块资源消耗较少且有的较少用到,所以管理节点不会因此成为瓶颈。而流速感知模块、状态管理模块、错误检测模块部署在所有工作节点上,默认元组分发管理模块同时部署在所有工作节点上,用户可以用另外的消息分发系统如kafka、netty等来代替元组分发管理模块,系统提供相应接口。
[0042]应用管理模块接收用户提交的应用代码,将代码解析成部署管理模块可以识别和分割的格式。部署管理模块对应用管理模块处理后的内容进行相应的识别、分割,根据应用配置向集群管理模块申请工作节点,并向工作节点发送任务代码,工作节点收到任务代码后,启动相应的处理单元。元组分发调整模块根据处理单元间的逻辑关系,设置发送关系,并批量地向持久存储系统发送元组进行备份。当应用运行后,流速感知模块启动,感知工作节点及其上部署的处理单元处理效率、元组分发管理模块中元组停留延迟。流速感知模块感知因为流输入率或可用资源的变化而引起的体现在应用延迟、处理效率等方面的变化,将上述变化信息告知弹性执行协调模块。弹性执行协调模块根据感知信息选择开启更多处理单元还是合并回收部分节点以提高资源利用率。当弹性执行协调模块判断需要开启更多处理单元时,将向部署管理模块请求部署更多处理单元,部署管理模块向集群管理模块请求新节点;当部署完成后,向元组分发管理模块请求调整元组分发关系。元组分发管理模块结合状态管理模块对系统处理状态进行备份以备失效后恢复。状态管理模块阶段性地对处理单元处理状态做检查点(快照),元组分发管理模块成批发送检查点时间戳之后的元组,持久存储系统中保留者随时可供恢复的处理状态和此快照检查点后应该处理的元组。当错误检测模块检测到错误发生后,向恢复协调模块申请恢复,恢复协调模块向状态管理模块申请找回状态,并向部署管理模块请求重新部署处理单元。
[0043]下面就上述模块进行详细说明:
[0044](I)部署管理模块,用于接收应用管理模块处理后的流应用逻辑拓扑图将其部署成并行的多线程组成的执行拓扑图;还用于接受弹性执行协调模块发来的扩展请求和收缩处理请求,进行对用户透明地应用重新部署;另外接受恢复协调模块请求重新部署失效的处理单元。部署管理模块在部署执行拓扑图的同时记录了处理单元的部署信息、任务信息,以便节点或处理单元失效后进行恢复处理。
[0045](2)流速感知模块,用于感
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1