一种多应用场景下的分布式流处理系统的容错方法技术方案

技术编号:22005177 阅读:22 留言:0更新日期:2019-08-31 06:49
本发明专利技术公开了一种多应用场景下的分布式流处理系统的容错方法,属于分布式流处理领域。本发明专利技术通过对所有节点的历史有效数据分析以及实时负载数据的监测,有效地根据节点不同负载状态采取了主动备份机制或者检查点机制,从而有效解决了流处理系统中的计算节点故障恢复延迟高的问题,降低了容错开销,极大缩短了恢复延迟,提高系统的可靠性。通过在多应用场景下通过负载感知进行热备任务选择和备用节点选择,合理选取备用节点用于运行部分任务的副本任务,利用空闲节点上的空闲资源为忙碌节点上的任务做热备,从而显著缩短忙碌节点在发生故障时的恢复时延,同时提高分布式流处理系统容错机制的资源利用率和可靠性。

A Fault Tolerant Method for Distributed Flow Processing System in Multi-application Scenarios

【技术实现步骤摘要】
一种多应用场景下的分布式流处理系统的容错方法
本专利技术属于分布式流处理领域,更具体地,涉及一种多应用场景下的分布式流处理系统的容错方法。
技术介绍
随着分布式计算技术在各个应用领域的不断扩展,分布式流处理系统被广泛应用在众多领域,例如,金融管理、网络监视、通讯数据管理、WEB应用、传感器网络数据处理等。分布式流处理系统是指采用分布式系统处理数据流业务的互联网软件系统。通过分布式技术,使得流数据不再集中放置于一个单一的服务器(节点)上进行处理,而是把所有应用逻辑分布在网络中的各个子节点上,通过子节点进行独立处理,然后将结果汇总到下游传输节点,形成数据流传输中的特有的有向无环图,最终将结果输出给用户。分布式流处理系统中要处理规模巨大的流数据,系统往往需要成百上千个机器共同协作运行,机器发生故障的频率逐渐增高,范围逐渐增大。当单个节点发生故障时就会导致数据处理中断,失效节点丢失内存中处理的数据以及状态信息,该节点即将发送给其他下游节点的数据以及近期接收到的数据也将全部丢失。进而将导致流处理系统无法实时处理源源不断流入的数据,无法满足系统的实时性以及高可用性。因此需要流处理系统具备良好的容错机制从而具备较强的容错性。分布式流处理系统的容错是指系统内容出现故障的情况下,仍然能够向外部环境提供正确服务的能力。典型的流处理系统的容错机制一般分为三种:(1)主动备份(activereplication)是指在流处理系统中每个节点都有一个节点作为备份,称原来的节点为主节点,其备份为备用节点。两节点运行相同的实例。一般来说,备用节点与主节点接收相同的数据流,执行的相同的操作,然后将处理结果发送给同一个下游节点,由下游节点去除重复的数据。一旦主节点发生失效,备用节点立刻替代已失效主节点继续进行处理,原主节点重新恢复后作为新的备用节点继续工作。主动备份机制由于需要同时运行主节点以及备用节点,二者在数据处理,通信,资源消耗方面基本同步,因此失效恢复时用时基本为零,但是需要耗费几乎两倍的计算及网络资源,因此常常用在容错实时性以及准确性较高的应用场景中。(2)检查点(checkpoints)是指通过周期性的提取主节点上实例的状态,例如,节点上实例的内部计算状态以及输入输出队列,存储到备用节点中,当主节点发生故障时,新的可用节点可以从备用节点中读取最近一次的检查点,获取其状态信息及数据,重新连接上下游节点然后重新进行计算,由于检查点机制所需要消耗的系统资源量较少,因此检查点机制适合应用在资源消耗少而可容忍较长恢复延时的应用中。(3)上游备份(upstreambackup)是指将数据保存在上游节点而非备用节点中,因此可以在下游节点发生失效时由上游节点进行数据重发,下游节点重新计算。并且上游节点中保存的数据会随着处理结果产生而更新删除。对于资源消耗严苛的应用场景则适用于上游备份机制,以牺牲恢复延迟的代价保证资源消耗最低。然而,上述容错机制都是针对系统中单个节点发生故障时采取的解决方法,并不适用于多节点同时失效的情况。在分布式流处理系统中,当路由、交换机或机架等发生故障时,会导致大量节点同时失效,称为关联失效。而分布式流处理系统中为了降低上下游节点间通信延迟以及提高资源利用率,通常将上下游的相邻节点部署在临近机器,同一机器或者同一机架上,因此在发生上述故障时,大量上下游节点往往同时发生关联失效。在这种情况下,分布式流处理系统的恢复延迟就会因为下游节点需要等待上游节点恢复正常以后重发最新的数据,然后开始自身的恢复工作而大大增加系统恢复时延。此外,上述容错机制都是针对单应用环境,即在一个流处理系统中同时只部署并运行仅一个流应用的情况。实际上,大规模流处理系统上往往运行着多个流处理应用,不同的应用在不同时间都呈现着不同的数据流入速率,因此每个计算节点的负载处于动态变化且无法准确预测的状态。已有的针对单应用的流处理系统容错机制往往难以解决大规模节点发生关联失效的问题,因此导致系统长时间宕机,系统性能降低。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有技术分布式流处理系统的容错方法在多应用场景多流应用时恢复时间很长、备用节点利用率低的技术问题。为实现上述目的,第一方面,本专利技术实施例提供了一种多应用场景下的分布式流处理系统的容错方法,所述分布式流处理系统初始为检查点机制,分布式流处理系统中所有工作节点集合Ω={N1,…,Ni,…,Nn},运行在工作节点Ni上的所有任务集合n为分布式流处理系统中所有工作节点的总个数,mi为工作节点Ni上的所有任务的总个数;该方法包括以下步骤:S1.实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息;S2.根据各工作节点Ni的所有任务的运行状态信息,计算该工作节点的负载增长比和该工作节点上任务tj的负载增长比S3.集合Ω中满足的所有工作节点构成热备节点候选集合Q,剩余节点构成空闲节点集合R;S4.集合Q中满足的所有任务构成热备任务候选集合P;S5.从集合P中选取无备份的任务构成热备任务集合P*,采用主动备份机制,将集合P*的任务备份部署到集合R上。具体地,所述任务的运行状态信息包括:该任务对应的等待队列长度该任务对应的实时数据输入速率该任务需要的计算资源具体地,其中,为节点Ni时刻s的总负载;为节点Ni上任务tj时刻s的负载,s为当前时刻,s-1表示从当前时刻开始Δs的时间间隔以前的时刻称为上一时刻。具体地,步骤S5采用排序法,具体如下:对P中所有任务以节点为范围,对每个节点上所有任务的负载进行排序,然后依次选择P集合中每个节点上第一个未被部署的任务备份部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。具体地,步骤S5采用随机法,具体如下:将P中所有任务备份依次随机部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。具体地,步骤S5采用贪婪方法,包括以下步骤:(1)每准备将P中一个任务tj备份部署到空闲节点上时,判断是否满足若是,将该任务添加到P*中,否则,不添加,添加任务tj后更新为P*中当前所有任务进行热备后所得到平均收益;(2)对P*中每个节点的任务的负载增长比进行降序排序,结果为集合Y={y1,y2,…,yq},其中,yi表示节点Ni的负载增长比排序列表,m′i为节点Ni上热备任务的总个数,q为P*中任务所在节点的个数;(3)R中所有节点按照空余资源情况降序排序,得到节点列表R′={R1,R2,…R|R|},|R|为集合R中节点总个数;(4)将P*中各节点的第一个任务备份依次部署到R′中第一个备用节点上去;(5)判断第一个备用节点剩余空闲资源是否为0,若是,则移除已经备份过的任务以及该节点,否则,移除已经备份过的任务;更新集合Y和R′,判断Y是否为空或者R′是否为空,若是,结束,否则,进入步骤(3)。具体地,P*中当前所有任务进行热备后所得到平均收益计算公式如下:其中,为任务tj进行热备后的备份效益,为节点Ni上任务tj时刻s的负载。具体地,P*中的所有任务进行热备后对γ个节点所带来的整体收益U计算公式如下:其中,γ为P*中的k个任务所在的节点的总个数。具体地,从集合P中选取无备份的任务构成热备任务集合P*时,需要同时满足以下两个限制条件:①本文档来自技高网
...

【技术保护点】
1.一种多应用场景下的分布式流处理系统的容错方法,其特征在于,所述分布式流处理系统初始为检查点机制,分布式流处理系统中所有工作节点集合Ω={N1,…,Ni,...,Nn},运行在工作节点Ni上的所有任务集合

【技术特征摘要】
1.一种多应用场景下的分布式流处理系统的容错方法,其特征在于,所述分布式流处理系统初始为检查点机制,分布式流处理系统中所有工作节点集合Ω={N1,…,Ni,...,Nn},运行在工作节点Ni上的所有任务集合n为分布式流处理系统中所有工作节点的总个数,mi为工作节点Ni上的所有任务的总个数;该方法包括以下步骤:S1.实时监测分布式流处理系统中所有工作节点的所有任务的运行状态信息;S2.根据各工作节点Ni的所有任务的运行状态信息,计算该工作节点的负载增长比和该工作节点上任务tj的负载增长比S3.集合Ω中满足的所有工作节点构成热备节点候选集合Q,剩余节点构成空闲节点集合R;S4.集合Q中满足的所有任务构成热备任务候选集合P;S5.从集合P中选取无备份的任务构成热备任务集合P*,采用主动备份机制,将集合P*的任务备份部署到集合R上。2.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,所述任务的运行状态信息包括:该任务对应的等待队列长度该任务对应的实时数据输入速率该任务需要的计算资源3.如权利要求2所述的分布式流处理系统的容错方法,其特征在于,其中,为节点Ni时刻s的总负载;为节点Ni上任务tj时刻s的负载,s为当前时刻,s-1表示从当前时刻开始Δs的时间间隔以前的时刻称为上一时刻。4.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,步骤S5采用排序法,具体如下:对P中所有任务以节点为范围,对每个节点上所有任务的负载进行排序,然后依次选择P集合中每个节点上第一个未被部署的任务备份部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。5.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,步骤S5采用随机法,具体如下:将P中所有任务备份依次随机部署到空闲节点上,直至所有任务都部署完或者找不到任何一个空闲节点来放。6.如权利要求1所述的分布式流处理系统的容错方法,其特征在于,步...

【专利技术属性】
技术研发人员:陈汉华金海詹晶晶张凡
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1