本发明涉及数据处理,特别是涉及一种流数据处理吞吐量动态调整方法、系统、设备及介质。
背景技术:
1、目前,在一些互联网系统中,每天需要系统处理的数据量随着时间的变化而变化;例如,对于球赛的相关服务平台中,由于不同时间比赛场次有多有少,如周末进行的足球比赛是周一的5-10倍,夜间进行比赛是白天2-3倍,随比赛的增多需要处理的数据量也会增多,为应对峰值流量,就需要提高spark streaming及时性和吞吐量,这是一项需要解决的重要问题。
2、现有技术中,采用如下方案克服以上问题:
3、第一种,启用spark streaming自带的动态资源分配机制:此方法中,sparkstreaming自带的动态资源分配机制在每个微批中起作用,通过感知batch处理速率从而增加或减少executor;这种方法适用于长时间的batch中,短时间任务中可能还没申请到executor,这个微批就已经结束,周而复始返回会导致数据积压越来越多,影响了及时性和吞吐量;
4、第二种,通过.人工修改spark streaming的配置参数重启任务:此方法中,人工修改配置参数分为调大批次间隔和调小批次间隔;但是,调整后大批次间隔数据延时高,小批次吞吐量低,同样会导致数据积压;而且人工修改配置还增加了系统风险,适用性同样较差;
5、第三种,对数据进行简单粗暴的distinct去重:此方法中,distinct去重无法有效减少数据量,因为需要取舍的数据需要动态判断,distinct无法精细化处理。
技术实现思路
1、本发明的目的在于,提供一种流数据处理吞吐量动态调整方法、系统、设备及介质,进而解决现有技术中存在的上述所有问题或问题之一。
2、为解决上述技术问题,本发明的具体技术方案如下:
3、一方面,本发明提供一种流数据处理吞吐量动态调整方法,包括以下步骤:
4、监听器配置步骤:
5、定义监听器;
6、将定义的所述监听器注册至spark streaming中;
7、动态监听步骤:
8、响应于spark streaming进行批次数据处理,调用所述监听器执行监听操作;
9、动态调整步骤:
10、配置积压批次阈值、积压情况进入策略以及非积压情况进入策略;
11、响应于spark streaming对当前批次数据处理完成,根据所述积压批次阈值、所述积压情况进入策略、所述非积压情况进入策略以及所述监听操作的监听结果执行核心逻辑判断操作;
12、根据所述核心逻辑判断操作的判断结果进行spark streaming参数调整。
13、作为一种改进的方案,所述监听操作,包括:
14、获取距离当前批次数据最近的十个批次处理时间;
15、获取当前积压的批次数量;
16、将所述十个批次处理时间以及当前积压的批次数量作为所述监听结果。
17、作为一种改进的方案,所述积压情况进入策略,包括:
18、当前积压的批次数量不小于所述积压批次阈值,且十个批次的总处理时间大于十个批次的总间隔时间的一点二倍,且上一批次处理的数据量小于配置的最大处理能力,且上一批次处理的数据量大于零;
19、所述非积压情况进入策略,包括:
20、十个批次的总处理时间小于十个批次的总间隔时间零点八倍,且上一批次处理的数据量大于零。
21、作为一种改进的方案,所述核心逻辑判断操作,包括:
22、根据所述监听结果,计算十个批次的总处理时间;
23、确认当前批次的上一批次处理的数据量;
24、判断所述当前积压的批次数量、所述十个批次的总处理时间以及所述上一批次处理的数据量是否满足所述积压情况进入策略或所述非积压情况进入策略。
25、作为一种改进的方案,所述根据所述核心逻辑判断操作的判断结果进行spa rkstreaming参数调整,包括:
26、响应于所述当前积压的批次数量、所述十个批次的总处理时间以及所述上一批次处理的数据量满足所述积压情况进入策略,执行积压调整策略;
27、响应于所述当前积压的批次数量、所述十个批次的总处理时间以及所述上一批次处理的数据量满足所述非积压情况进入策略,执行非积压调整策略;
28、所述积压调整策略,包括:
29、获取spark streaming的原始批次间隔以及原始数据拉取速率;
30、将所述十个批次的总处理时间、所述原始批次间隔代入第一间隔计算公式计算第一新批次间隔;
31、将所述原始批次间隔、所述原始数据拉取速率和所述第一新批次间隔代入第一速率计算公式计算第一新拉取数据速率;
32、按照计算的所述第一新批次间隔以及所述第一新拉取数据速率,进行sparkstreaming的初始化;
33、所述非积压调整策略,包括:
34、获取spark streaming的原始批次间隔以及原始数据拉取速率;
35、将所述十个批次的总处理时间、所述原始批次间隔代入第二间隔计算公式计算第二新批次间隔;
36、将所述原始批次间隔、所述原始数据拉取速率和所述第二新批次间隔代入第二速率计算公式计算第二新拉取数据速率;
37、按照计算的所述第二新批次间隔以及所述第二新拉取数据速率,进行sparkstreaming的初始化。
38、作为一种改进的方案,所述第一间隔计算公式为:
39、
40、所述第一速率计算公式为:
41、
42、作为一种改进的方案,所述流数据处理吞吐量动态调整方法,还包括:
43、按照分区规范进行批次数据处理;
44、所述分区规范,包括:
45、将包含相同特征的数据划分至同一分区,去除分区内的重复数据。
46、另一方面,本发明还提供一种流数据处理吞吐量动态调整系统,包括:
47、监听器配置模块、动态监听模块和动态调整模块;
48、所述监听器配置模块,用于定义监听器;所述监听器配置模块将定义的所述监听器注册至spark streaming中;
49、所述动态监听模块,用于响应于spark streaming进行批次数据处理,调用所述监听器执行监听操作;
50、所述动态调整模块,用于配置积压批次阈值、积压情况进入策略以及非积压情况进入策略;所述动态调整模块响应于spark streaming对当前批次数据处理完成,根据所述积压批次阈值、所述积压情况进入策略、所述非积压情况进入策略以及所述监听操作的监听结果执行核心逻辑判断操作;所述动态调整模块根据所述核心逻辑判断操作的判断结果进行spark streaming参数调整。
51、另一方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述流数据处理吞吐量动态调整方法的步骤。
52、另一方面,本发明还提供一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;其中:
53、所述存储器,用于存放计算机程序;
54、所述处理器,用于通过运行所述存储器上所存放的程序来执行所述流数据处理吞吐量动态调整方法的步骤。
55、本发明技术方案的有益效果是:
56、1、本发明所述的流数据处理吞吐量动态调整方法,可以实现在不增加服务器资源的情况下,最大化降低数据延时,提高系统吞吐量,且基于动态调整的逻辑提升参数调整的精准性;基于不同情况下的调整策略,避免了无效调整方式,自动化的处理操作降低了人工操作风险,最终提高了spark streaming的及时性和吞吐量,弥补了现有技术的缺陷,具有较高的应用价值。
57、2、本发明所述的流数据处理吞吐量动态调整系统,可以通过监听器配置模块、动态监听模块和动态调整模块的相互配合,进而实现在不增加服务器资源的情况下,最大化降低数据延时,提高系统吞吐量,且基于动态调整的逻辑提升参数调整的精准性;基于不同情况下的调整策略,避免了无效调整方式,自动化的处理操作降低了人工操作风险,最终提高了spark streaming的及时性和吞吐量,弥补了现有技术的缺陷,具有较高的应用价值。
58、3、本发明所述的计算机可读存储介质,可以实现引导监听器配置模块、动态监听模块和动态调整模块进行配合,进而实现本发明所述的流数据处理吞吐量动态调整方法,且本发明所述的计算机可读存储介质还有效提高所述流数据处理吞吐量动态调整方法的可操作性。
59、4、本发明所述的计算机设备,可以实现存储并执行所述计算机可读存储介质,进而实现本发明所述的流数据处理吞吐量动态调整方法。