System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据和通讯技术业务支撑,尤其涉及一种海量小文件的处理方法、系统、设备及可读存储介质。
技术介绍
1、电信运营商需要把日常海量话单文件及时采集合并到自建的大数据中心,该场景的特点是每分钟话单文件很小(kb至几十kb)、话单文件数量大(百万至千万级别),从话单生成到采集解析入库,整个过程如何保证数据的时效性对于数据采集工作是一个巨大的挑战。即“海量小文件实时采集”是大数据中心建设和运营工作中重要的细分场景,如何保证此场景下数据采集性能和数据时效性是一个值得研究的课题。相关技术中,通过预先设置数据源和采集节点(进程或线程)的比例关系,然后将采集任务均匀地调度给各采集节点去执行,从而提高文件采集效率。但是,使用预先设置好的采集节点去执行采集任务,存在采集任务较少时采集资源过剩造成主机资源的浪费,无法对主机资源的合理使用。
技术实现思路
1、本申请实施例通过提供一种海量小文件的处理方法、系统、设备及可读存储介质,旨在实现对采集节点进行动态扩容和缩容,实现对主机资源合理使用的效果。
2、本申请实施例提供了一种海量小文件的处理方法,所述海量小文件的处理方法包括:
3、当接收到采集任务时,获取历史文件采集记录、所述采集任务的大小和采集完成时间;
4、根据所述历史文件采集记录、所述采集任务的大小和所述采集完成时间,确定初始采集节点数量;
5、监测各采集节点的负载信息,并基于各采集节点的负载信息调整所述初始采集节点数量,得到执行所述采集任务的
6、调度所述采集节点数量的采集节点以执行所述采集任务。
7、可选地,所述根据所述历史文件采集记录、所述采集任务的大小和所述采集完成时间,确定初始采集节点数量的步骤包括:
8、根据所述历史文件采集记录,确定平均采集耗时;
9、根据所述平均采集耗时、所述采集任务的大小和所述采集完成时间,确定初始采集节点数量。
10、可选地,所述调度所述采集节点数量的采集节点以执行所述采集任务的步骤之后,还包括:
11、将执行所述采集任务所采集得到的小文件存储于内存环形结构中;
12、读取所述内存环形结构中的小文件后合并成大文件,并将所述大文件存储于分布式文件系统。
13、可选地,所述读取所述内存环形结构中的小文件后合并成大文件,并将所述大文件存储于分布式文件系统的步骤包括:
14、确定采集线程数量与合并线程数量的比例;
15、基于所述比例读取所述内存环形结构中的小文件后写入大文件;
16、当所述大文件满足预设条件时,将所述大文件存储于分布式文件系统。
17、可选地,所述确定采集线程数量与合并线程数量的比例包括:
18、根据历史文件合并记录确定采集线程数量与合并线程数量的最佳比例区间,并根据所述最佳比例区间确定所述采集线程数量与合并线程数量的比例;
19、或者,根据采集任务的大小确定所述采集线程数量与合并线程数量的比例。
20、可选地,所述当接收到采集任务时,获取历史文件采集记录、所述采集任务的大小和采集完成时间的步骤之前,还包括:
21、读取消息中间件中的事件通知,并获取所述事件通知中的目标事件通知;
22、获取所述目标事件通知对应的业务类型,并获取所述业务类型的最大允许文件数量和/或最大文件大小;
23、获取所述业务类型累积读取到的小文件数量和/或小文件大小;
24、当所述小文件数量达到所述最大允许文件数量,和/或,所述文件大小达到所述最大文件大小时,根据所述业务类型的优先级和当前调度集群的负载,判断是否触发采集任务的调度。
25、可选地,所述读取消息中间件中的事件通知,并获取所述事件通知中的目标事件通知的步骤之前,还包括:
26、监听小文件的事件通知;
27、将所述事件通知关联的事件信息存储于消息中间件,其中,所述事件信息至少包括小文件的事件类型和业务类型。
28、此外,为实现上述目的,本申请还提供了一种海量小文件的处理系统,包括:
29、采集任务触发模块,用于当接收到采集任务时,获取历史文件采集记录、所述采集任务的大小和采集完成时间;
30、采集节点数量确定模块,用于根据所述历史文件采集记录、所述采集任务的大小和所述采集完成时间,确定初始采集节点数量;监测各采集节点的负载信息,并基于各采集节点的负载信息调整所述初始采集节点数量,得到执行所述采集任务的采集节点数量;
31、采集任务执行模块,用于调度所述采集节点数量的采集节点以执行所述采集任务。
32、此外,为实现上述目的,本申请还提供了一种海量小文件的处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的海量小文件的处理程序,所述海量小文件的处理程序被所述处理器执行时实现上述的海量小文件的处理方法的步骤。
33、此外,为实现上述目的,本申请还提供了一种计算机可读存储介质,其上存储有海量小文件的处理程序,所述海量小文件的处理程序被处理器执行时实现上述的海量小文件的处理方法的步骤。
34、本申请实施例中提供的一种海量小文件的处理方法、系统、设备及可读存储介质的技术方案,本申请的调度节点在接收到采集任务时,根据历史文件采集记录、采集任务的大小和采集完成时间确定初始采集节点数量。同时,监测各采集节点的负载信息,基于各采集节点的负载信息动态调整初始采集节点数量,通过对采集节点进行扩容和缩容,实现主机资源的合理使用。
本文档来自技高网...【技术保护点】
1.一种海量小文件的处理方法,其特征在于,所述海量小文件的处理方法包括:
2.如权利要求1所述的海量小文件的处理方法,其特征在于,所述根据所述历史文件采集记录、所述采集任务的大小和所述采集完成时间,确定初始采集节点数量的步骤包括:
3.如权利要求1所述的海量小文件的处理方法,其特征在于,所述调度所述采集节点数量的采集节点以执行所述采集任务的步骤之后,还包括:
4.如权利要求3所述的海量小文件的处理方法,其特征在于,所述读取所述内存环形结构中的小文件后合并成大文件,并将所述大文件存储于分布式文件系统的步骤包括:
5.如权利要求4所述的海量小文件的处理方法,其特征在于,所述确定采集线程数量与合并线程数量的比例包括:
6.如权利要求1所述的海量小文件的处理方法,其特征在于,所述当接收到采集任务时,获取历史文件采集记录、所述采集任务的大小和采集完成时间的步骤之前,还包括:
7.如权利要求6所述的海量小文件的处理方法,其特征在于,所述读取消息中间件中的事件通知,并获取所述事件通知中的目标事件通知的步骤之前,还包括:
...【技术特征摘要】
1.一种海量小文件的处理方法,其特征在于,所述海量小文件的处理方法包括:
2.如权利要求1所述的海量小文件的处理方法,其特征在于,所述根据所述历史文件采集记录、所述采集任务的大小和所述采集完成时间,确定初始采集节点数量的步骤包括:
3.如权利要求1所述的海量小文件的处理方法,其特征在于,所述调度所述采集节点数量的采集节点以执行所述采集任务的步骤之后,还包括:
4.如权利要求3所述的海量小文件的处理方法,其特征在于,所述读取所述内存环形结构中的小文件后合并成大文件,并将所述大文件存储于分布式文件系统的步骤包括:
5.如权利要求4所述的海量小文件的处理方法,其特征在于,所述确定采集线程数量与合并线程数量的比例包括:
6.如权利要求1所述的海量小文件的处理方法,其特征在于,所述当接收到采集任务时,获取历史文件采...
【专利技术属性】
技术研发人员:唐显莉,王冀彬,陈卓,陈乐,魏瑗珍,
申请(专利权)人:中移动信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。