本发明专利技术公开了一种数据采集速度控制方法、设备及存储介质,所述数据采集速度控制方法包括:采集数据源数据,请求将数据写入系统暂存存储器;根据数据写入是否成功的判断结果和暂存存储器的使用容量,调整系统在两次数据采集之间的休眠时间。所述设备及存储介质实现上述数据采集速度控制方法的步骤。本发明专利技术根据数据写入和暂存存储器的使用容量等不同状态而采用不同的休眠策略,可以确保整个数据采集过程的平稳进行,避免因为采集频率突然增加或者突然降低,对整个采集过程的稳定性产生冲击。
【技术实现步骤摘要】
一种数据采集速度控制方法、设备及存储介质
本专利技术涉及数据采集领域,具体涉及一种数据采集速度控制方法、设备及存储介质。
技术介绍
在大数据时代,Flume等数据采集工具已成为数据采集的主要方式。Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。作为一个优秀的数据采集工具,Flume可以应用于多个场景,其中,Agent进程是一种独立的进程,包含Source、Channel、Sink组件,Source是Flume中获取数据的组件,并将数据写入到Channel中,Channel是一个被动的存储器,负责暂存由Source发送过来的数据,Sink负责消费Channel中的数据,发送到对应的目的地。图1为Flume采集数据的架构,Source可以从日志文件、网络端口、Kafka等多种数据源采集数据,封装成Event(Flume中传输数据的最小单位),写入Channel。数据成功写入到Channel中后,Sink会从Channel中主动拉取数据写入到HDFS、HBase、Hive、ES等多种大数据组件中。Source、Sink、Channel三大模块共同构成了一个Agent进程,Source与Sink作为Agent进程中的两个线程,分别负责从数据源获取数据和将数据写入目的地。在现有的数据写入流程中,由于网络故障、主机负载过高、目的端组件处理速度过慢等原因,会导致Sink写入数据缓慢或者在一段时间内无法写入数据,而Source在采集数据的速度并不会因此发生改变,导致在Channel中积压大量数据。当Channel中存储的数据达到设置的最大值时,Source将无法向Channel写入数据,从而不断地按照固定的时间进行重试,占用主机计算资源,增加本主机负载。而且,由于Channel中积压了大量的数据,也会占用大量的存储资源,无法得到释放。
技术实现思路
为了解决上述技术问题,本专利技术提出了一种数据采集速度控制方法、设备及存储介质,通过主动改变数据采集的频率,确保数据采集过程平稳进行,避免采集频率突然增加或降低,影响数据采集的稳定性。为实现上述目的,本专利技术采用以下技术方案:一种数据采集速度控制方法,包括:采集数据源数据,请求将数据写入系统暂存存储器;根据数据写入是否成功的判断结果和暂存存储器的使用容量,调整系统在两次数据采集之间的休眠时间。进一步地,采集数据之前,配置定义数据采集的最大休眠时间和最小休眠时间。进一步地,当数据写入失败时,执行写入失败休眠策略:获取当前的数据采集休眠时间,如果当前休眠时间为数据采集最大休眠时间,返回最大休眠时间;如果当前休眠时间不是最大休眠时间,设置新休眠时间为当前休眠时间的两倍;如果新休眠时间大于最大休眠时间,返回最大休眠时间;如果新休眠时间不大于最大休眠时间,返回新休眠时间。进一步地,当数据写入成功且暂存存储器使用容量为0-60%时,执行缓存充足休眠策略:获取当前的数据采集休眠时间,如果当前休眠时间为数据采集最小休眠时间,返回最小休眠时间;如果当前休眠时间不是最小休眠时间,设置新休眠时间为当前休眠时间的二分之一;如果新休眠时间小于最小休眠时间,返回最小休眠时间;如果新休眠时间不小于最小休眠时间,返回新休眠时间。进一步地,当数据写入成功且暂存存储器使用容量为61-80%时,执行缓存较充足休眠策略:获取当前的数据采集休眠时间,如果当前休眠时间为数据采集最小休眠时间,返回最小休眠时间;如果当前休眠时间不是最小休眠时间,设置新休眠时间=(最大休眠时间-最小休眠时间)*10%;如果新休眠时间小于最小休眠时间,返回最小休眠时间;如果新休眠时间不小于最小休眠时间,返回新休眠时间。进一步地,当数据写入成功且暂存存储器使用容量为81-100%时,执行缓存紧张休眠策略:获取当前的数据采集休眠时间,如果当前休眠时间为数据采集最大休眠时间,返回最大休眠时间;如果当前休眠时间不是最大休眠时间,设置新休眠时间=(最大休眠时间-最小休眠时间)*10%+当前休眠时间;如果新休眠时间大于最大休眠时间,返回最大休眠时间;如果新休眠时间不大于最大休眠时间,返回新休眠时间。本专利技术还提出了一种数据采集速度控制设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述数据采集速度控制方法的步骤。本专利技术还提出了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据采集速度控制方法的步骤。本专利技术的有益效果是:本专利技术通过提出一种数据采集速度控制方法、设备及存储介质,在网络故障、网络不稳定、目的端的组件写入速度过慢、目的端主机负载过高等多种原因造成数据采集进程的目的地数据写入速度远远小于数据采集速度时,主动改变数据采集的频率,从而降低暂存存储器的缓存压力,释放部分存储空间,同时也可以释放部分该进程所在主机计算资源,降低该主机的负载。根据暂存存储器的使用容量状态而采用不同的策略,可以确保整个数据采集过程的平稳进行,避免因为采集频率突然增加或者突然降低,对整个采集过程的稳定性产生冲击。附图说明图1是Flume采集数据的架构示意图;图2是本专利技术数据采集速度控制方法流程示意图;图3是本专利技术实施例数据采集速度控制方法写入失败休眠策略流程示意图;图4是本专利技术实施例数据采集速度控制方法缓存充足休眠策略流程示意图;图5是本专利技术实施例数据采集速度控制方法缓存较充足休眠策略流程示意图;图6是本专利技术实施例数据采集速度控制方法缓存紧张休眠策略流程示意图。具体实施方式为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。本专利技术公开了一种数据采集速度控制方法,包括:采集数据源数据,请求将数据写入系统暂存存储器;根据数据写入是否成功的判断结果和暂存存储器的使用容量,调整系统在两次数据采集之间的休眠时间。采集数据之前,配置定义数据采集的最大休眠时间和最小休眠时间。具体地,本专利技术实施例数据采集数据控制方法的流程如图2所示:1)Source从数据源采集数据,封装到Event中;2)尝试将数据写入到Channel中;3)如果数据写入失败,执行数据写入失败休眠策略,修改休眠时间后休眠,重新执行步骤2);如果数据写入成功,执行步本文档来自技高网...
【技术保护点】
1.一种数据采集速度控制方法,其特征在于,包括:/n采集数据源数据,请求将数据写入系统暂存存储器;/n根据数据写入是否成功的判断结果和暂存存储器的使用容量,调整系统在两次数据采集之间的休眠时间。/n
【技术特征摘要】
1.一种数据采集速度控制方法,其特征在于,包括:
采集数据源数据,请求将数据写入系统暂存存储器;
根据数据写入是否成功的判断结果和暂存存储器的使用容量,调整系统在两次数据采集之间的休眠时间。
2.根据权利要求1所述的数据采集速度控制方法,其特征在于,采集数据之前,配置定义数据采集的最大休眠时间和最小休眠时间。
3.根据权利要求2所述的数据采集速度控制方法,其特征在于,当数据写入失败时,执行写入失败休眠策略:
获取当前的数据采集休眠时间,如果当前休眠时间为数据采集最大休眠时间,返回最大休眠时间;
如果当前休眠时间不是最大休眠时间,设置新休眠时间为当前休眠时间的两倍;
如果新休眠时间大于最大休眠时间,返回最大休眠时间;
如果新休眠时间不大于最大休眠时间,返回新休眠时间。
4.根据权利要求2所述的数据采集速度控制方法,其特征在于,当数据写入成功且暂存存储器使用容量为0-60%时,执行缓存充足休眠策略:
获取当前的数据采集休眠时间,如果当前休眠时间为数据采集最小休眠时间,返回最小休眠时间;
如果当前休眠时间不是最小休眠时间,设置新休眠时间为当前休眠时间的二分之一;
如果新休眠时间小于最小休眠时间,返回最小休眠时间;
如果新休眠时间不小于最小休眠时间,返回新休眠时间。
5.根据权利要求2所述的数据采集速度控...
【专利技术属性】
技术研发人员:胡永泽,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。