本发明专利技术提出一种用于多云部署的流处理系统容错方法,主要包括三个步骤:步骤1,将资源管理和分配架构设置为三层架构:任务管理器‑云管理器‑执行终端;步骤2,以云边界为切分依据,将跨云流处理任务切分为多个处理阶段,其中每个阶段中连接其它阶段的节点称为边界节点,其余节点称为云内节点;步骤3,进行容错判断和处理,两个处理阶段的边界节点间的故障采用缓存加确认的容错方法,云内节点的故障采用云内全局一致的分布式快照容错方法。
A fault tolerance method of flow processing system for multi cloud deployment
【技术实现步骤摘要】
一种用于多云部署的流处理系统容错方法
本专利技术涉及一种流处理系统容错方法,尤其涉及一种用于多云部署的流处理系统容错方法。
技术介绍
主动备份和被动备份是最早的两种类似的容错技术。使用主动备份的流处理系统,其每个节点都会有一个备份节点,两者同时处理数据,并周期性的同步状态。当其中一个节点发生故障时,系统可以快速切换到另一个节点,以此实现容错。与主动备份不同的,在使用被动备份的系统中,备份节点并不处理数据,主节点周期性的将自己的状态同步到备份节点。当发生故障时,系统同样切换到备份节点,继续处理数据现有技术主要有三种方式,一是流式处理系统使用数据源缓存与确认机制实现容错,二是使用相邻节点的缓存与确认机制实现容错,三是使用全局一致的分布式快照容错机制。然而,现有分布式流处理系统的容错机制更多得被设计为适合于单云环境,多云环境在很多方面都与多云有着较大的差异,特别是多云间网络环境。由于这些差异的存在,会放大现有这些机制的缺点,降低其优势。现有技术的数据源缓存与确认机制的问题在于,如果数据处理流程中使用了时间跨度比较长的窗口操作,则需要增大计时器的超时时间。否则系统会频繁发送重复数据,不仅增加系统消耗,浪费系统资源,还可能影响最终结果。但另一方面,增大超时时间会增加系统的故障发现时间,进而增加系统的故障响应时间。同时该容错机制无法向上层应用提供有且仅有一次的语义保证。现有技术的相邻节点的缓存与确认机制的问题在于过多的资源消耗。该方法可以保证及时发现节点故障并恢复,也可以保证有且仅有一次的处理语义。但由于每个节点都需要缓存数据,处理完每个数据后都需要持久化状态,产生了过多的资源消耗,并增加了系统的处理时延。现有技术的全局一致的分布式快照容错机制资源消耗少,每个数据的处理时延低,故障发现时间短,同时可以保证有且仅有一次的处理语义,但故障恢复时间长。任意节点故障都需要对整个流水线进行恢复。如果部署环境中发生故障的概率较高,则会使系统频繁进行故障恢复,严重影响系统的可用性。
技术实现思路
本专利技术提出一种用于多云部署的流处理系统容错方法,主要包括三个步骤:步骤1,资源管理和分配,设置单个云的管理模块将资源管理和分配架构设置为三层:任务管理器-云管理器-执行终端;步骤2,以云边界为切分依据,将跨云流处理任务切分为多个处理阶段,其中每个阶段中连接其它阶段的节点称为边界节点,其余节点称为云内节点;步骤3,两个处理阶段的边界节点间的故障采用缓存加确认的容错技术,云内节点的故障采用云内全局一致的分布式快照容错技术本专利技术容错机制适用于多云部署的流处理系统与传统的处理方法相比,使用分布式流处理系统处理多云分布的数据在便捷性,可靠性和实时性等方面都能更胜一筹,现有分布式流处理系统更多得被设计成更适合于单云环境,而多云环境在很多方面都与多云有着较大的差异,特别是网络环境的不同,如果直接将现有系统部署到多云环境,则会严重影响流处理系统的可靠性,效率等。通过对现有流处理系统的容错机制进行优化,能使其更加适应多云环境,以便更好的处理多云分布的数据。附图说明图1为本专利技术的资源管理和分配架构图;图2为本专利技术流处理任务阶段进行划分示意图;图3为本专利技术的故障恢复机制;图4为本专利技术的整体流程图具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。如图4为本专利技术的整体流程图,本专利技术提出一种用于多云部署的流处理系统容错方法,主要包括三个步骤:步骤1,资源管理和分配,设置单个云的管理模块将资源管理和分配架构设置为三层:任务管理器-云管理器-执行终端;步骤2,以云边界为切分依据,将跨云流处理任务切分为多个处理阶段,其中每个阶段中连接其它阶段的节点称为边界节点,其余节点称为云内节点;步骤3,两个处理阶段的边界节点间的故障采用缓存加确认的容错方法,云内节点的故障采用云内全局一致的分布式快照容错方法。本专利技术在不破坏云内网安全性的前提下,将单个云视作一个整体,在原有的资源管理和分配架构中,设置单个云的管理模块CloudManager,将资源管理和分配架构设置为三层:任务管理器JobManager-云管理器CloudManager-执行终端Executor。在这种三层架构中,JobManager只与每个云中的云管理器CloudManager节点通信,完成任务分发和资源监控,具体的流程如图1所示。任务管理器负责接受用户提交的流处理应用,生成执行计划并下发至每个云管理器,同时任务管理器负责从云管理器收集应用的执行状态并向用户展示;接受用户的一些指令,例如暂停任务执行,取消任务等。云管理器运行在每个云中,每个云中至少有一个云管理器,所述云管理器接受任务管理器下发的任务并根据具体的任务属性将任务下发至具体的执行节点;监控任务的执行状态并上报给任务管理器;发生故障时负责进行故障恢复。执行终端为每个云中负责执行任务的节点,可以是物理机或虚拟机,主要负责接受云管理器下发的任务并执行。层与层之间可通过RPC调用进行通信,任务发布具体为将组成一个应用的所有任务中所属某个云的部分任务通过RPC调用发送给对应的云管理器,资源监控是指收集所有云管理器上报的节点信息。本专利技术的流处理任务阶段进行划分如图2所示,本专利技术对全局一致分布式快照进行切分,使其成为相对独立的几个阶段,每个阶段独立进行分布式快照和恢复,以一个阶段为单位使用分布式快照可以降低系统耦合性,减小故障面,加快恢复速度,降低对中心节点的依赖。本专利技术在流处理阶段内和阶段间故障恢复机制如图3所示,为了降低耦合度,以单个云为阶段,对一个作业的处理流程进行切分,为去中心化,使用每个云中的云管理器CM为错误监测和恢复的调度器,当整个系统中某个节点发生故障时,由故障节点所在云的云管理器CM进行调度,对该云内部的节点进行恢复,而不影响其他云内节点的运行,以此加快系统的故障恢复速度,提高系统的可用性。所以云管理器的调度和恢复的具体步骤为云管理器和所在云内的执行节点之间通过心跳包来来进行故障检测。当云管理器发现某个节点发生故障时,首先判断节点类型,之后根据不同的节点类型,执行不同的恢复算法。如果是云内节点,则执行全局一致快照恢复算法,暂停该云内的所有内部节点上的任务,迁移故障节点的任务至空闲节点,重新启动所有任务;如果是边界节点,则只需要暂停故障节点上的任务,将其迁移至空闲节点并重新开始执行即可。最后应说明的是:以上实施例仅用以说明本专利技术的技术方案,而非对其限制;尽管参照前述实施例对本专利技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本专利技术各本文档来自技高网...
【技术保护点】
1.一种用于多云部署的流处理系统容错方法,其特征在于,主要包括三个步骤:步骤1,将资源管理和分配架构设置为三层架构:任务管理器-云管理器-执行终端;步骤2,以云边界为切分依据,将跨云流处理任务切分为多个处理阶段,其中每个阶段中连接其它阶段的节点称为边界节点,其余节点称为云内节点;步骤3,进行容错判断和处理,两个处理阶段的边界节点间的故障采用缓存加确认的容错方法,云内节点的故障采用云内全局一致的分布式快照容错方法。/n
【技术特征摘要】
1.一种用于多云部署的流处理系统容错方法,其特征在于,主要包括三个步骤:步骤1,将资源管理和分配架构设置为三层架构:任务管理器-云管理器-执行终端;步骤2,以云边界为切分依据,将跨云流处理任务切分为多个处理阶段,其中每个阶段中连接其它阶段的节点称为边界节点,其余节点称为云内节点;步骤3,进行容错判断和处理,两个处理阶段的边界节点间的故障采用缓存加确认的容错方法,云内节点的故障采用云内全局一致的分布式快照容错方法。
2.如权利要求1所述的方法,其特征在于,在所述三层架构中,所述任务管理器接受用户提交的流处理应用,生成执行计划并下发至每个云管理器,并从云管理器收集应用的执行状态并向用户展示;所述云管理器运行在每个云中,接受任务管理器下发的任务并根据具体的任务属性将任务下发至具体的执行节点,监控任务的...
【专利技术属性】
技术研发人员:沃天宇,贾宵雷,林学练,谢天宇,罗彦林,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。