【技术实现步骤摘要】
基于流计算的数据处理方法、装置及电子设备
本申请涉及流计算
,特别涉及一种基于流计算的数据处理方法、装置及电子设备。
技术介绍
作为流式计算任务的最小执行单位,算子失败是十分常见的,比如设备故障、用户代码抛出错误或者网络故障等等都可能造成算子执行失败。对批处理计算作业来说,通常单个任务失败的处理方式是重启并重新调度失败任务,而不影响其他任务和整体作业的运行,然而这个方式对于流式计算来说并不可用。流式计算任务的算子执行失败恢复机制是从检查点(checkpoint)获取重放日志(Redolog)和重新回放数据两步。对于重启后的新算子,它通过从检查点读取重放日志,但不能独立地重新回放数据,因为重放日志不包含数据的,要重新回放数据只能要求全部上游算子重新计算,因此需追溯到数据源算子。当前,为了保证流式计算作业“精确一次(exactlyonce)”级别的一致性,流计算故障恢复的基本方案是重启流计算中所有的算子,即重置整个执行图(ExecutionGraph)。对于大流量、高并发的流式计算任务,由于单个算子执行失败将重新启动流计算的所有算子,恢复耗时较长,从而导致流计算输出中断。这对实时性和稳定性有高要求的线上任务来说,比如欺诈检测、告警监控,异常检测等,其严重影响用户体验和可用性。
技术实现思路
本申请提供了一种基于流计算的数据处理方法、装置及电子设备,本申请实施例采用的技术方案如下:一种基于流计算的数据处理方法,包括:响应于流计算中至少一个第一算子出现运行错误,确定所 ...
【技术保护点】
1.一种基于流计算的数据处理方法,包括:/n响应于流计算中至少一个第一算子出现运行错误,确定所述第一算子的输入数据中未计算完成的第一数据,生成能够标识所述第一数据的第一标识;/n获取预先保存的所述流计算的日志文件,基于所述日志文件初始化所述第一算子的数据;/n构建所述第一算子与相邻上游算子,以及所述第一算子与相邻下游算子之间的数据连接;/n向所述相邻上游算子发送所述第一标识,使所述相邻上游算子至少向所述第一算子重新发送所述第一数据,以使所述第一算子基于所述第一数据进行计算并更新数据。/n
【技术特征摘要】 【专利技术属性】
1.一种基于流计算的数据处理方法,包括:
响应于流计算中至少一个第一算子出现运行错误,确定所述第一算子的输入数据中未计算完成的第一数据,生成能够标识所述第一数据的第一标识;
获取预先保存的所述流计算的日志文件,基于所述日志文件初始化所述第一算子的数据;
构建所述第一算子与相邻上游算子,以及所述第一算子与相邻下游算子之间的数据连接;
向所述相邻上游算子发送所述第一标识,使所述相邻上游算子至少向所述第一算子重新发送所述第一数据,以使所述第一算子基于所述第一数据进行计算并更新数据。
2.根据权利要求1所述的方法,其中,所述确定所述第一算子的输入数据中未计算完成的第一数据,生成用于标识所述第一数据的第一标识,包括:
确定所述第一算子的第一映射关系,其中,所述第一映射关系包括所述第一算子分别与所述相邻上游算子和所述相邻下游算子的第一关联关系,和/或所述第一算子的输入数据和输出数据的第二关联关系;
确定所述第一算子在第一时段的输入数据和输出数据;其中,所述第一时段包括保存所述日志文件至所述第一算子出现运行错误之间的时段;
基于所述第一映射关系和所述第一算子在所述第一时段的输出数据,确定所述第一算子在所述第一时段的输入数据中未计算完成的所述第一数据,以及已计算完成的第二数据;
生成用于标识所述第一数据的所述第一标识,或生成通过标识所述第二数据以对所述第一数据进行标识的所述第一标识。
3.根据权利要求2所述的方法,其中,所述确定所述第一算子在第一时段的输入数据和输出数据,包括:
获取第二标识,其中,所述第二标识用于标识所述相邻上游算子在所述第一时段输出的第三数据;
基于所述第二标识确定所述第一算子在第一时段的输入数据;
获取第三标识,其中,所述第三标识用于标识所述相邻下游算子在所述第一时段输入的第四数据;
基于所述第三标识确定所述第一算子在第一时段的输出数据。
4.根据权利要求3所述的方法,其中,所述向所述相邻上游算子发送所述第一标识,使所述相邻上游算子至少向所述第一算子重新发送所述第一数据,以使所述第一算子基于所述第一数据进行计算并更新数据,包括:
向所述相邻上游算子发送所述第一标识,使所述相邻上游算子基于所述第一标识对所述第三数据中包含的所述第一数据和/或所述第二数据进行标识;
控制所述相邻上游算子向所述第一算子发送标识后的所述第三数据;
控制所述第一算子对所述第二数据进行计算,禁止向所述相邻下游算子输出数据;
控制所述第一算子对所述第一数据进行计算,向所述相邻下游算子输出数据。
5.根据权利要求3所述的方法,其中,所述向所述相邻上游算子发送所述第一标识,使所述相邻上游算子至少向所述第一算子重新发送所述第一数据,以使所述第一算子基于所述第一数据进行计算并更新数据,包括:
向所述相邻上游算子发送所述第一标识,使所述相邻上游算子基于所述第一标识从所述第三数据中提取所述第一数据;
控制所述相邻上游算子向所述第一算子重新发送所述第一数据;
控制所述第一算子对所述第一数据进行计算,并向所述相邻下游算子输出数据。
技术研发人员:张勇涛,张剑鸣,
申请(专利权)人:联想北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。