【技术实现步骤摘要】
一种基于Spark流计算框架的消息容错方法及系统
本专利技术属于流式计算容错
,具体涉及一种基于Spark流计算框架的消息容错方法及系统。
技术介绍
SparkStreaming是一套框架,是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。本专利中,将SparkStreaming简称为Spark流。流式应用程序必须24*7全天候运行,因此必须能够抵抗与应用程序逻辑无关的故障(例如,系统故障,JVM崩溃等)。为此,SparkStreaming需要将足够的信息指向容错存储系统,以便可以从故障中恢复。SparkStreaming提供了检查点机制,用于消息的恢复处理。检查点有两种类型的数据。一是元数据检查点-将定义流计算的信息保存到HDFS等容错存储中。这用于从运行流应用程序的驱动程序的节点的故障中恢复;元数据包括:配置、离散流操作、不完整的批次。二是数据检查点-将生成的数据集保存到可靠的存储中。在一些有状态转换中,这需要跨多个批次合并数据,这是必需的。在此类转换中,生成的数据集依赖于先前批次的数据集,这导致依赖项链的长度随时间不断增加。为了避免恢复时间的这种无限制的增加(与依赖关系链成比例),有状态转换的中间数据集会定期检查点到可靠的存储(例如HDFS),以切断依赖关系链。当系统出现故障,可以通过检查点机制进行恢复,但是当流式程序代码或配置改变,或者更新迭代新功能的时候,先停止旧的SparkStreaming程序,新的程序打包编译后执行运行,会出现两种情况:一 ...
【技术保护点】
1.一种基于Spark流计算框架的消息容错方法,其特征在于,包括如下步骤:/nS1.创建工作流程序,设置元数据检查点任务将加入程序和配置版本标签的流式计算信息保存到存储系统;/nS2.设置Spark流从消息队列读取消息后进行消息分区处理生成数据集,完成Spark流中数据集转换操作及创建逻辑执行计划;/nS3.当Spark流中有状态转换,且有数据检查点时,设置数据集进行有状态转换处理,并在数据检查点任务中加入程序和配置版本标签;/nS4.当系统出现故障时,设置Spark流获取检查点中的程序及配置版本信息,并在程序及配置版本信息发生改变时,启动重做任务,重做检查点,以及在程序及配置版本信息未发生改变时,重启程序;/nS5.启动新版本程序,通过新版本检查点进行后续数据恢复处理。/n
【技术特征摘要】
1.一种基于Spark流计算框架的消息容错方法,其特征在于,包括如下步骤:
S1.创建工作流程序,设置元数据检查点任务将加入程序和配置版本标签的流式计算信息保存到存储系统;
S2.设置Spark流从消息队列读取消息后进行消息分区处理生成数据集,完成Spark流中数据集转换操作及创建逻辑执行计划;
S3.当Spark流中有状态转换,且有数据检查点时,设置数据集进行有状态转换处理,并在数据检查点任务中加入程序和配置版本标签;
S4.当系统出现故障时,设置Spark流获取检查点中的程序及配置版本信息,并在程序及配置版本信息发生改变时,启动重做任务,重做检查点,以及在程序及配置版本信息未发生改变时,重启程序;
S5.启动新版本程序,通过新版本检查点进行后续数据恢复处理。
2.如权利要求1所述的基于Spark流计算框架的消息容错方法,其特征在于,步骤S1具体步骤如下:
S11.创建工作流程序;
S12.设置流式计算信息中加入程序和配置版本标签;
S13.设置元数据检查点任务将流式计算信息保存到存储系统。
3.如权利要求1或2所述的基于Spark流计算框架的消息容错方法,其特征在于,步骤S1中,元数据检查点任务保存的流式计算信息包括创建流应用程序的配置、定义流应用程序的离散流操作集、作业排队但尚未完成的批次。
4.如权利要求1所述的基于Spark流计算框架的消息容错方法,其特征在于,步骤S3具体步骤如下:
S31.判断Spark流中是否有状态转换,且有数据检查点;
若否,返回步骤S2;
若是,进入步骤S32;
S32.设置数据集进行有状态转换处理,并在数据检查点任务中加入程序和配置版本标签。
5.如权利要求1所述的基于Spark流计算框架的消息容错方法,其特征在于,步骤S4具体步骤如下:
S41.当系统出现故障,设置Spark流启动对元数据检查点及数据检查点结果的反序列化操作;
S42.分别获取两个检查点各自的程序及配置版本信息;
S43.判断Spark流中程序和配置版本是否未改变;
若是,进入步骤S44;
若否,进入步骤S45;
S44.重启程序,进行后续处理;结束;
S45.启动重做任务,将两个检查点反序列化为内容进行修改,适配新版本要求,同时将修改后数据集或Spark流信息通过新版本检查点机制重做元数据检查点和数据检查点,并将检查点结果保存到存储系统。
6.如权利要求1所述的基于Spark流计算框架的消息容错方法,其特征在于,步骤S5具体步骤如下:
S51.启动新版本程序;
S52.将新版本检查点结果进行反序列化;
S53.通过新版本检查点进行后续数据恢复处理。
7.一种基于Spark流计算框架的消息容错系统,其特征在于,包括:<...
【专利技术属性】
技术研发人员:魏健,赵波,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。