System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,尤其涉及一种对flink算子反压的处理方法及设备。
技术介绍
1、flink作业的资源使用和稳定运行非常重要,当作业中出现反压算子,flink拓扑中每个算子间的数据都以阻塞队列的方式传输,下游来不及消费导致队列被占满后,上游的生产也会被阻塞,最终导致数据源的摄入被阻塞。
2、在现有技术中,对flink作业的采集项主要是系统指标和业务指标,重点包括uptime(作业持续运行的时间)、fullrestarts(作业重启的次数)等代表作业可用性的指标,还包含cpu(如:cpu.load)、内存(如:heap.used)、gc(如:garbagecollector.count、garbagecollector.time)及网络(inputqueuelength、outputqueuelength)等排查作业故障信息的指标。然而,对flink作业算子反压的指标采集的工作仍不完善,并且缺少对flink作业算子反压的监控告警。
3、因此,如何设计一个合适的对flink算子反压的处理方法,以实现flink算子反压的监控告警成为一个亟需解决的问题。
技术实现思路
1、本申请提供一种对flink算子反压的处理方法及设备,用以实现对flink算子反压的监控告警。
2、第一方面,本申请提供一种对flink算子反压的处理方法,包括:
3、根据预设的时间间隔,获取处于运行状态的flink任务的任务标识以及本次获取的时间戳,并获取所述任务标识对
4、根据所述第一反压指标以及所述时间戳判断所述flink任务是否反压,若是,将所述任务标识添加至待告警列表中,并根据所述第一反压指标定位所述待告警列表中的flink任务的反压算子;
5、根据所述第二反压指标判断所述反压算子的反压原因;
6、针对待告警列表中的flink任务,根据任务标识、反压原因和时间戳向对应的用户终端发送预警信息。
7、在一种可能的设计中,所述根据所述第一反压指标以及所述时间戳判断所述flink任务是否反压,包括:
8、针对每一个flink任务,遍历所述flink任务中的每个算子,根据每个算子的第一反压指标,确定所述算子的忙碌等级;
9、判断是否存在第一算子的忙碌等级高于第一预设等级,若存在,判断所述第一算子的上游算子或下游算子的忙碌等级是否高于第二预设等级,若是,则将所述flink任务标识以及时间戳添加至目标反压清单,其中,所述第一预设等级高于第二预设等级,所述忙碌等级与忙碌程度正相关;
10、根据历史反压清单中的flink任务标识和时间戳以及所述目标反压清单,判断所述flink任务是否反压。
11、在一种可能的设计中,所述根据历史反压清单中的flink任务标识和时间戳以及所述目标反压清单,判断所述flink任务是否反压,包括:
12、判断所述历史反压清单中是否存在多于目标反压清单中的flink任务标识,若存在,删除历史反压清单中多于所述目标反压清单中的flink任务标识以及时间戳;
13、将目标反压清单中的flink任务标识以及时间戳添加至历史反压清单中;
14、判断所述历史反压清单中是否存在预设次数的flink任务标识,若是,则所述flink任务反压。
15、在一种可能的设计中,所述获取所述任务标识对应的反压指标,包括:
16、根据任务标识从rest api接口获取所述flink任务中每个算子的第一反压指标以及每个节点的第二反压指标;
17、其中,所述第一反压指标包括:算子名称、数据发送速率、数据接收速率和日志信息;
18、所述第二反压指标包括:每个节点的发送端缓冲池的使用率、接收端缓冲池的使用率、节点读取量和节点写入量。
19、在一种可能的设计中,所述根据所述第一反压指标定位所述待告警列表中的flink任务的反压算子,包括:
20、针对待告警列表中的每一个flink任务,若存在目标算子的数据接收速率大于第一阈值且数据发送速率小于第二阈值,则判定所述目标算子为反压算子;
21、若不存在,遍历flink任务中的每一个算子,根据所述数据接收速率和数据发送速率获取速率差值;
22、将flink任务中速率差值最大的算子作为反压算子。
23、在一种可能的设计中,所述根据所述第二反压指标判断所述反压算子的反压原因,包括:
24、根据每一个节点的节点读取量和节点写入量获取所述反压算子对应的总节点读取量和总节点写入量;
25、根据所述每一个节点的节点读取量、节点写入量以及总节点读取量和总节点写入量获取每一个节点的节点读取量占比和节点写入量占比;
26、根据所述每一个节点的节点读取量占比和节点写入量占比,判断所述反压算子的反压原因。
27、在一种可能的设计中,所述根据所述每一个节点的节点读取量占比和节点写入量占比,判断所述反压算子的反压原因,包括:
28、若存在节点的节点读取量占比和/或节点写入量占比大于第三阈值,则将反压原因归类为数据倾斜问题;
29、若不存在节点的节点读取量占比和/或节点写入量占比大于第三阈值,则判断所述反压算子的算子名称中是否存在第三方数据库名,若存在第三方数据库名,则将反压原因归类为第三方连接库问题;
30、若不存在第三方数据库名,根据所述日志信息判断是否发生omm或者taskmanager失联,若发生,则将反压原因则归类为gc垃圾回收问题,若不发生,则将反压原因归类为代码问题。
31、在一种可能的设计中,所述根据所述第二反压指标判断所述反压算子的反压原因之后,所述方法还包括:
32、根据所述反压原因的类型判断是否对反压算子进行自动化调优处理,若是,则通过自动化程序对所述flink任务进行调优处理;
33、其中,归类为第三方连接库问题和gc垃圾回收问题的反压原因,可进行自动化调优处理;所述自动化程序用于根据反压算子的数据发送速率和数据接收速率获取资源调整值,并根据所述资源调整值对所述flink任务进行调优处理。
34、第二方面,本申请提供一种对flink算子反压的处理设备,包括:
35、获取模块,用于根据预设的时间间隔,获取处于运行状态的flink任务的任务标识以及本次获取的时间戳,并获取所述任务标识对应的反压指标;其中,所述反压指标包括flink任务中每个算子的第一反压指标,以及每个算子中各个节点的第二反压指标;所述第一反压指标包括所述算子的数据传输信息,所述第二反压指标包括每个节点的数据使用信息;
36、反压判本文档来自技高网...
【技术保护点】
1.一种对Flink算子反压的处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一反压指标以及所述时间戳判断所述Flink任务是否反压,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据历史反压清单中的Flink任务标识和时间戳以及所述目标反压清单,判断所述Flink任务是否反压,包括:
4.根据权利要求1所述的方法,其特征在于,所述获取所述任务标识对应的反压指标,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一反压指标定位所述待告警列表中的Flink任务的反压算子,包括:
6.根据权利要求4所述的方法,其特征在于,所述根据所述第二反压指标判断所述反压算子的反压原因,包括:
7.根据权利要求6所述的方法,其特征在于,所述根据所述每一个节点的节点读取量占比和节点写入量占比,判断所述反压算子的反压原因,包括:
8.根据权利要求1所述的方法,其特征在于,所述根据所述第二反压指标判断所述反压算子的反压原因之后,所述方法还包括:
< ...【技术特征摘要】
1.一种对flink算子反压的处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一反压指标以及所述时间戳判断所述flink任务是否反压,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据历史反压清单中的flink任务标识和时间戳以及所述目标反压清单,判断所述flink任务是否反压,包括:
4.根据权利要求1所述的方法,其特征在于,所述获取所述任务标识对应的反压指标,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一反压指标定位所述待告警列表中的flink任务的反压算子,包括:
6.根据权利要求4所述的方法,其特征在于,所述根据所述第二反压指标判...
【专利技术属性】
技术研发人员:姜雨彤,穆纯进,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。