文件处理方法和装置、存储介质及电子装置与流程

文档序号:33090094发布日期:2023-01-31 22:53阅读:31来源:国知局
文件处理方法和装置、存储介质及电子装置与流程

1.本技术涉及计算机领域,具体而言,涉及一种文件处理方法和装置、存储介质及电子装置。


背景技术:

2.在计算机领域中,比如:自动驾驶领域,算法的训练往往需要大量的数据集支持,由此,对数据处理工具的集成便利性、兼容性以及数据处理的效率提出了更高的要求。
3.现有技术中,在对一批文件进行相同的处理操作的情况下,往往是在服务器上串行地对多个文件进行逐个处理,并且需要在每个计算节点上部署工具集,在进行工具部署的时候,需要保证每个计算节点的工具版本是最新的,过程复杂,并且难以控制所部署的工具的版本,文件的处理效率较低。
4.针对相关技术中,文件的处理效率较低等问题,尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种文件处理方法和装置、存储介质及电子装置,以至少解决相关技术中,文件的处理效率较低等问题。
6.根据本技术实施例的一个实施例,提供了一种文件处理方法,包括:确定待处理的文件集合;响应于目标创建指令,创建n 个计算单元pod,并将目标版本的目标工具的工具镜像分别加载到所述n个pod中,其中,所述目标创建指令用于指示创建的pod的数量为n,并指示使用的工具是所述目标版本的所述目标工具,n为大于或等于2的正整数;通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理。
7.可选的,所述通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理之前,所述方法还包括:对于所述n个pod中的第i个pod,执行以下步骤,其中,1≤i≤n:将所述第i个pod中加载的所述工具镜像的文件输入路径与n个缓存中的第i个缓存中的文件输入路径建立映射关系,其中,所述第i个pod中加载的所述工具镜像的文件输入路径,以及所述第i个缓存中的文件输入路径,用于获取分配给所述第i个pod处理的文件;将所述第i个pod中加载的所述工具镜像的文件输出路径与所述第i个缓存中的文件输出路径建立映射关系,其中,所述第i个pod中加载的所述工具镜像的文件输出路径,以及所述第i个缓存中的文件输出路径,用于获取所述第i个pod处理文件的结果。
8.可选的,所述通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理,包括:对于所述n个pod中的第i个pod,执行以下步骤:在所述第i个pod正在处理当前分配的文件,或者,所述第i个pod已处理完所述当前分配的文件的情况下,从所述文件集合中选择尚未被处理的目标文件,将所述目标文件传输到所述第i个缓存中的文件输入路径;在所述第i个pod已处理完所述当前分配的文件的情况下,根据所述第i个pod中加载的所述工具镜像的文件输入路径与所述第i个缓存中的文件输入路径之间的
映射关系,将所述第i个缓存中的文件输入路径上的所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径;通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理。
9.可选的,所述通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理,包括:对于所述n个pod中的第i个pod,执行以下步骤:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件的数量小于预定数量阈值的情况下,从所述文件集合中选择尚未被处理的文件,将选择的所述尚未被处理的文件传输到所述第i个缓存中的文件输入路径;在所述第i个pod已处理完当前分配的文件的情况下,根据所述第i个pod中加载的所述工具镜像的文件输入路径与所述第i个缓存中的文件输入路径之间的映射关系,将所述第i个缓存中的文件输入路径上存储的目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径,其中,所述目标文件是尚未被处理的文件;通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理。
10.可选的,所述将所述第i个缓存中的文件输入路径上存储的目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径,包括:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件中,选择最早传输到所述第i个缓存中的文件输入路径上的文件,作为所述目标文件,并将所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径;或者在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件中,随机选择一个文件,作为所述目标文件,并将所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径。
11.可选的,所述通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理之后,所述方法还包括:将目标处理结果存储到所述第i个pod中加载的所述工具镜像的文件输出路径,其中,所述目标处理结果是通过所述第i个pod运行加载的所述工具镜像对所述目标文件进行处理所得到的结果;根据所述第i个pod中加载的所述工具镜像的文件输出路径与所述第i个缓存中的文件输出路径之间的映射关系,将所述第i个pod中加载的所述工具镜像的文件输出路径上存储的所述目标处理结果传输到所述第i个缓存中的文件输出路径。
12.可选的,在所述通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理之后,所述方法还包括:在所述文件集合中的文件均已被处理的情况下,删除所述n个pod;或者在所述n个pod中的第i个pod处理完当前分配的文件、且所述文件集合中不存在尚未被处理的文件的情况下,删除所述第i个pod,其中,1≤i≤n。
13.可选的,在将目标版本的目标工具的工具镜像分别加载到所述n个pod中,包括:根据所述目标创建指令中的指示信息,在目标镜像库中获取所述目标版本的所述目标工具的工具镜像,其中,所述指示信息用于指示使用的工具是所述目标版本的所述目标工具,所述目标镜像库中存储了一组工具镜像,所述一组工具镜像中的每个工具镜像是一个版本的一个工具的工具镜像;将获取到的所述目标版本的所述目标工具的工具镜像分别加载到所述n个pod中。
14.根据本技术实施例的另一个实施例,还提供了一种文件处理装置,包括:确定模块,用于确定待处理的文件集合;
第一处理模块,用于响应于目标创建指令,创建n 个计算单元pod,并将目标版本的目标工具的工具镜像分别加载到所述n个pod中,其中,所述目标创建指令用于指示创建的pod的数量为n,并指示使用的工具是所述目标版本的所述目标工具,n为大于或等于2的正整数;第二处理模块,用于通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理。
15.根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述文件处理方法。
16.根据本技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的文件处理方法。
17.在本技术实施例中,确定待处理的文件集合;响应于目标创建指令,创建n 个计算单元pod,并将目标版本的目标工具的工具镜像分别加载到n个pod中,其中,目标创建指令用于指示创建的pod的数量为n,并指示使用的工具是目标版本的目标工具,n为大于或等于2的正整数;通过n个pod运行各自加载的工具镜像并行地对文件集合中的文件进行处理,即在需要对一批文件进行批量处理的情况下,可以通过多个pod并行地对多个文件执行相同的处理,提升了文件的处理效率。此外,可以响应目标创建指令,自动部署多个计算单元pod,并且将同一版本的同一工具的工具镜像加载在多个pod中,避免了工具的版本差异所导致的文件处理的不准确。采用上述技术方案,解决了相关技术中,文件的处理效率较低等问题,实现了提升文件的处理效率的技术效果。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
19.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1是根据本技术实施例的一种文件处理方法的硬件环境示意图;图2是根据本技术实施例的一种文件处理方法的流程图;图3是根据本技术实施例的一种文件处理方法的示意图一;图4是根据本技术实施例的一种确定待处理的文件集合的示意图;图5是根据本技术实施例的一种编辑pod的示意图;图6是根据本技术实施例的一种预传输文件至缓存的示意图一;图7是根据本技术实施例的一种预传输文件至缓存的示意图二;图8是根据本技术实施例的一种选择目标文件的示意图;图9是根据本技术实施例的一种文件处理方法的应用场景示意图;图10是根据本技术实施例的一种文件处理方法的示意图二;图11是根据本技术实施例的一种文件处理装置的结构框图。
具体实施方式
21.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
22.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
23.本技术实施例所提供的方法实施例可以在计算机终端、设备终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是根据本技术实施例的一种文件处理方法的硬件环境示意图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
24.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的文件处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
25.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
26.在本技术实施例中提供了一种文件处理方法,应用于上述计算机终端,图2是根据本技术实施例的一种文件处理方法的流程图,如图2所示,该流程包括如下步骤:步骤s202,确定待处理的文件集合;步骤s204,响应于目标创建指令,创建n 个计算单元pod,并将目标版本的目标工具的工具镜像分别加载到所述n个pod中,其中,所述目标创建指令用于指示创建的pod的数
量为n,并指示使用的工具是所述目标版本的所述目标工具,n为大于或等于2的正整数;步骤s206,通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理。
27.通过上述步骤,在需要对一批文件进行批量处理的情况下,可以通过多个pod并行地对多个文件执行相同的处理,提升了文件的处理效率。此外,可以响应目标创建指令,自动部署多个计算单元pod,并且将同一版本的同一工具的工具镜像加载在多个pod中,避免了工具的版本差异所导致的文件处理的不准确。采用上述技术方案,解决了相关技术中,文件的处理效率较低等问题,实现了提升文件的处理效率的技术效果。
28.在本技术实施例中,提供了一种文件处理方法,可以但不限于用于批量处理多个文件,图3是根据本技术实施例的一种文件处理方法的示意图一,如图3所示,在镜像库104中可以但不限于存储有工具镜像1(即版本1的工具1的镜像),工具镜像2(即版本2的工具1的镜像),工具镜像3(即版本1的工具2的镜像),
……
,工具镜像n(即版本m的工具i的镜像),数据中台102可以通过client-java(k8s(kubernetes,基于容器的集群管理平台) api(api(application programming interface,应用程序接口))接口调用镜像库中存储的工具镜像。在需要对文件进行处理的时候,可以通过数据中台102选择待处理的文件集合,通过k8s sdk接口从镜像库中获取处理文件所需的工具镜像1,然后创建n个pod,并且在每个pod中自动部署工具镜像1,然后将pod 1部署在服务器108上,将pod 2部署在服务器110上,
……
,将pod n部署在服务器n上。
29.在服务器106上可以但不限于部署有缓存1,缓存2,
……
,缓存n,分别建立缓存1,缓存2,
……
,缓存n的文件输入路径add(address,地址)11,add21,
……
,addn1,与pod 1,pod 2,
……
,pod n中加载的工具镜像1的文件输入路径add 01之间的映射关系,分别建立pod 1,pod 2,
……
,pod n中加载的工具镜像1的文件输出路径add 02与缓存1,缓存2,
……
,缓存n的文件输出路径add12,add22,
……
,addn2之间的映射关系。
30.在开始对待处理的文件集合进行处理的时候,以文件1为例,首先将文件1传输到服务器106中的缓存1的文件输入路径add11上,根据缓存1的文件输入路径add11与将pod 1中加载的工具镜像1的文件输入路径add 01之间的映射关系,将缓存1中的文件输入路径add11上的文件1传输到pod 1中加载的工具镜像1的文件输入路径add 01上,通过pod 1运行加载的工具镜像1对文件输入路径add 01上的文件1进行处理,得到文件1的处理结果。在这样的情况下,将文件1的处理结果存储到pod 1中加载的工具镜像1的文件输出路径add 02上,根据pod 1中加载的工具镜像1的文件输出路径add 02与缓存1中的文件输出路径add12之间的映射关系,将pod 1中加载的工具镜像1的文件输出路径add 02上存储的文件1的处理结果传输到缓存1中的文件输出路径add12上。
31.需要说明的是,不同的pod可以但不限于部署在同一个服务器上,在实际部署pod的时候,往往是根据服务器的空闲能力进行部署,各个服务器中空闲能力较强的,部署较多的pod,空闲能力较差的,部署较少的pod。在图3中,仅仅以每个pod均部署在不同的服务器上对本技术实施例中的文件处理方法进行解释说明,对于每个服务器上所部署的pod数量,可以根据服务器的实际情况进行选择,本技术实施例对此不作限制。
32.在上述步骤s202提供的技术方案中,可以但不限于通过在数据中台上展示的文件选择界面上执行的编辑操作,确定待处理的文件集合。
33.图4是根据本技术实施例的一种确定待处理的文件集合的示意图,如图4所示,测试人员可以在数据中台上展示的前端可视化的文件选择界面上的文件搜索框中输入文件名称,然后点击查询按钮,搜索对应的文件,也可以点击重置按钮,清空文件搜索框中的内容,然后重新输入所想要搜索的文件名称。
34.在搜索出想要的文件之后,文件选择界面上会展示当前搜索出来的文件的文件名,文件大小,文件的创建日期,以及对文件执行的操作(可以但不限于包括查阅详情操作、删除操作、下载操作和处理操作等等)。测试人员可以单独对每个文件进行操作,比如:点击每个文件下展示的详情按钮,可以查阅当前文件的详细内容,点击删除按钮即可删除当前文件,点击下载按钮即可下载当前文件,点击处理按钮即可对当前文件进行处理。测试人员也可以通过勾选所希望处理的多个文件,然后点击批量处理按钮或者批量下载按钮,进而实现对所选择的多个文件的批量处理和批量下载。通过在数据中台上展示前端可视化界面批量选择待处理的文件,降低了测试人员选择所需要处理的文件的过程的复杂度,极大提升了测试人员选择所需要处理的文件的效率。
35.在上述步骤s204提供的技术方案中,在对同一批文件进行处理的时候,每个pod中可以但不限于部署有版本相同的工具镜像,通过这样的方式,可以保证每个pod对文件进行相同的处理,提升了文件的处理结果的一致性。
36.可选的,在本实施例中,在测试人员在数据中台展示的文件选择界面上完成选择待处理的文件集合的情况下,可以但不限于根据测试人员在数据中台配置处理待处理的文件集合所需的工具、工具版本、pod的数量、部署pod的服务器,以及pod运行完成之后,输出的处理结果的存储路径等等获取目标创建指令。图5是根据本技术实施例的一种编辑pod的示意图,如图5所示,测试人员可以在数据中台上展示的任务处理界面上,编辑当前处理文件的任务名称(可以但不限于为tool_test),选择待处理的文件集合所使用的工具,可以但不限于选择工具在镜像库中的地址(可以但不限于为10.179.70.104:80),以及上述工具的工具版本(可以但不限于为v(version ,版本)1)。可以但不限于通过编辑实例(pod)数的方式来选择处理待处理的文件集合所需的pod的数量(可以但不限于为3)。可以但不限于通过勾选集群处理中包括的服务器(服务器1,服务器2,服务器3),选择部署pod运行所在的服务器,测试人员也可以勾选全选,表明将服务器1,服务器2,服务器3都确定为pod运行所在的服务器。
37.可以但不限于通过编辑数据输出字段,编辑pod运行完毕之后,输出的文件的处理结果的存储区域(可以但不限于为对象存储),可以但不限于通过编辑存储路径字段,编辑输出的文件的处理结果的存储路径(可以但不限于为demo/)。工具字段用于编辑工具的属性,可以但不限为测试属性。在这样的情况下,点击确定按钮,即可进入自动化对待处理的文件集合进行处理的过程。如果点击取消按钮,则会清空当前编辑的内容。
38.需要说明的是,在图5中带*的任务名称、工具选择、工具版本和实例(pod)数数必须进行编辑的项。另外,如果需要采用不同的于上述工具版本为v1的工具镜像对待处理的文件进行处理的话,需要点击添加按钮,进而重新为待处理的文件选择其它版本的工具。也可以通过点击删除按钮,删除当前所编辑的内容。
39.在一个示例性实施例中,可以但不限于通过以下方式将目标版本的目标工具的工具镜像分别加载到n个pod中:根据所述目标创建指令中的指示信息,在目标镜像库中获取
所述目标版本的所述目标工具的工具镜像,其中,所述指示信息用于指示使用的工具是所述目标版本的所述目标工具,所述目标镜像库中存储了一组工具镜像,所述一组工具镜像中的每个工具镜像是一个版本的一个工具的工具镜像;将获取到的所述目标版本的所述目标工具的工具镜像分别加载到所述n个pod中。
40.可选地,在本实施例中,可以但不限于根据目标创建指令中的指示信息中携带的目标工具在目标镜像库中的存储位置和工具版本等等工具标识,从目标镜像库中存储的多个工具镜像中查找目标工具的工具镜像。目标镜像库中存储的多个工具镜像可以但不限于包括不同版本的相同工具所对应的不同的工具镜像以及不同工具所对应的不同的工具镜像等等。
41.在上述步骤s206提供的技术方案中,通过每个pod运行在该pod中加载的工具镜像,实现了对文件集合中的文件进行并行地处理,这样的方式,一方面各个pod之间的运行是相互独立的,避免了pod之间的相互干扰;另一方面,可以同时运行多个pod中加载的工具镜像对多个文件进行批量地处理,大大地提升了文件的处理效率。
42.可选地,在本实施例中,n个pod中的每个pod中可以但不限于部署有一个容器,可以但不限于在每个pod的容器中运行加载的工具镜像,pod和容器可以但不限于为工具镜像的正常运行提供了运行环境、运行资源和存储资源等等。
43.在一个示例性实施例中,可以但不限于通过以下方式分别建立pod中加载的工具镜像的文件输入路径、文件输出路径与缓存的文件输入路径、文件输出路径之间的映射关系:对于所述n个pod中的第i个pod,执行以下步骤,其中,1≤i≤n:将所述第i个pod中加载的所述工具镜像的文件输入路径与n个缓存中的第i个缓存中的文件输入路径建立映射关系,其中,所述第i个pod中加载的所述工具镜像的文件输入路径,以及所述第i个缓存中的文件输入路径,用于获取分配给所述第i个pod处理的文件;将所述第i个pod中加载的所述工具镜像的文件输出路径与所述第i个缓存中的文件输出路径建立映射关系,其中,所述第i个pod中加载的所述工具镜像的文件输出路径,以及所述第i个缓存中的文件输出路径,用于获取所述第i个pod处理文件的结果。
44.可选地,在本实施例中,各个pod可以但不限于对应着一个缓存,n个pod所对应的缓存可以但不限于均部署在nfs(network file system,网络文件系统)服务器上,可以但不限于通过nfs挂载的方式,分别建立pod中加载的工具镜像的文件输入路径、文件输出路径与缓存的文件输入路径、文件输出路径之间的映射关系。也就是说,可以但不限于先将各个pod待处理的文件传输到nfs服务器上该pod所对应的缓存上的文件输入路径上,然后将该pod所对应的缓存上的文件输入路径上的文件传输到各个pod中加载的工具镜像的文件输入路径上。在pod运行完毕的情况下,将文件的处理结果传输到该pod加载的工具镜像的文件输出路径上,再将该pod加载的工具镜像的文件输出路径上的文件传输到该pod所对应的缓存上文件输出路径上。
45.可选地,在本实施例中,通过nfs挂载的方式,一方面nfs服务器作为中间缓存,可以循环提供给每一次pod加载文件、输出文件进行循环使用,减少了存储文件和文件的处理结果所需占用的运行pod的服务器的资源;另一方面,实现了对文件的处理结果的批量获取,避免了在pod中查找文件的处理结果,提升了获取文件的处理结果的效率。
46.在一个示例性实施例中,可以但不限于通过以下方式并行地对文件集合中的文件
进行处理:对于所述n个pod中的第i个pod,执行以下步骤:在所述第i个pod正在处理当前分配的文件,或者,所述第i个pod已处理完所述当前分配的文件的情况下,从所述文件集合中选择尚未被处理的目标文件,将所述目标文件传输到所述第i个缓存中的文件输入路径;在所述第i个pod已处理完所述当前分配的文件的情况下,根据所述第i个pod中加载的所述工具镜像的文件输入路径与所述第i个缓存中的文件输入路径之间的映射关系,将所述第i个缓存中的文件输入路径上的所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径;通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理。
47.可选地,在本实施例中,在pod运行加载的工具镜像对文件进行处理的过程中,可以将每个pod所要处理的文件预传输到该pod所对应的缓存的文件输入路径,图6是根据本技术实施例的一种预传输文件至缓存的示意图一,如图6所示,pod i中加载的工具镜像当前正在处理分配的文件k,那么在pod i中加载的工具镜像处理文件k的过程中(即图6中的

),可以从待处理的文件集合(文件m,文件m+1,
……
,文件n)中选择尚未被处理的文件传输至缓存i的文件输入路径上,在pod i中加载的工具镜像处理文件k完毕的情况下(即图6中的

),将缓存i的文件输入路径上的文件传输至pod i中加载的工具镜像的文件输入路径。
48.或者,在pod i中加载的工具镜像已经处理文件k完毕的情况下(即图6中的

),从待处理的文件集合(文件m,文件m+1,
……
,文件n)中选择尚未被处理的文件传输至缓存i的文件输入路径上,在pod i中加载的工具镜像处理文件k完毕的情况下(即图6中的

),再将缓存i的文件输入路径上的文件传输至pod i中加载的工具镜像的文件输入路径上。
49.在一个示例性实施例中,可以但不限于通过以下方式并行地对文件集合中的文件进行处理:对于所述n个pod中的第i个pod,执行以下步骤:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件的数量小于预定数量阈值的情况下,从所述文件集合中选择尚未被处理的文件,将选择的所述尚未被处理的文件传输到所述第i个缓存中的文件输入路径;在所述第i个pod已处理完当前分配的文件的情况下,根据所述第i个pod中加载的所述工具镜像的文件输入路径与所述第i个缓存中的文件输入路径之间的映射关系,将所述第i个缓存中的文件输入路径上存储的目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径,其中,所述目标文件是尚未被处理的文件;通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理。
50.可选地,在本实施例中,各个pod所对应的缓存中可以但不限于允许存储预定数量阈值的尚未被处理的文件以及一定数量的已经被处理的文件。图7是根据本技术实施例的一种预传输文件至缓存的示意图二,如图7所示,pod i中加载的工具镜像当前正在处理分配的文件1,pod i所对应的缓存i的预定数量阈值可以但不限于为5(或者8,或者10,或者7等等),也就是说,缓存i最多可以存储5个尚未被处理的文件,当前已经将尚未被处理的文件2和文件3传输到缓存i的文件输入路径上(即图7中的

,在第i个缓存中的文件输入路径上存储的尚未被处理的文件的数量小于预定数量阈值的情况下),在这样的情况下,可以从待处理的文件集合(文件5,文件6,
……
,文件n)中选择尚未被处理的文件5和文件6传输至缓存i的文件输入路径上;在pod i中加载的工具镜像处理文件1完毕的情况下(即图7中的

),将缓存i的文件输入路径上的尚未被处理的文件传输至pod i中加载的工具镜像的文
件输入路径上。通过将小于预定数量阈值的文件预传输至缓存中,使得pod在处理完毕当前文件的情况下,可以直接从缓存中获取下一个待处理的文件,提升了文件的处理效率。
51.在一个示例性实施例中,将第i个缓存中的文件输入路径上存储的目标文件传输到第i个pod中加载的所述工具镜像的文件输入路径,可以但不限于包括以下情形之一:情形一:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件中,选择最早传输到所述第i个缓存中的文件输入路径上的文件,作为所述目标文件,并将所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径。
52.可选地,在本实施例中,每个缓存中可以但不限于记录了该缓存中的各个文件传输至该缓存的文件输入路径的时间,可以但不限于从缓存中的尚未被处理的文件中获取最早传输至该缓存的文件输入路径上的文件作为目标文件。通过这样的方式,避免了遗漏传输时间较早的文件,实现了先传输先处理,提升了对文件的处理及时性。
53.情形二:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件中,随机选择一个文件,作为所述目标文件,并将所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径。
54.可选地,在本实施例中,从缓存中的尚未被处理的文件中随机选择一个文件作为目标文件,通过这样的方式,提升了缓存的文件输入路径上的文件的处理的平均性。
55.可选地,在本实施例中,可以但不限于选择最早传输到缓存中的文件输入路径上的文件,或者,从缓存中的文件输入路径上的文件随机选择一个文件作为目标文件。图8是根据本技术实施例的一种选择目标文件的示意图,如图8所示,pod i中加载的工具镜像当前正在处理分配的文件1,pod i所对应的缓存i的预定数量阈值可以但不限于为5(或者8,或者10,或者7等等),也就是说,缓存i最多可以存储5个尚未被处理的文件,当前已经将尚未被处理的文件2和文件3传输到缓存i的文件输入路径上(即图8中的

,在第i个缓存中的文件输入路径上存储的尚未被处理的文件的数量小于预定数量阈值的情况下),在这样的情况下,可以从待处理的文件集合(文件5,文件6,
……
,文件n)中选择尚未被处理的文件5和文件6传输至缓存i的文件输入路径上;在pod i中加载的工具镜像处理文件1完毕的情况下,可以将缓存i的文件输入路径上的尚未被处理的文件中最早传输到缓存i的文件2作为目标文件(即图8中的

),或者,随机选择文件5(即图8中的

)作为目标文件,并将目标文件传输至pod i中加载的工具镜像的文件输入路径上。
56.在一个示例性实施例中,可以但不限于通过以下方式存储文件的处理结果:将目标处理结果存储到所述第i个pod中加载的所述工具镜像的文件输出路径,其中,所述目标处理结果是通过所述第i个pod运行加载的所述工具镜像对所述目标文件进行处理所得到的结果;根据所述第i个pod中加载的所述工具镜像的文件输出路径与所述第i个缓存中的文件输出路径之间的映射关系,将所述第i个pod中加载的所述工具镜像的文件输出路径上存储的所述目标处理结果传输到所述第i个缓存中的文件输出路径。
57.可选地,在本实施例中,通过将各个pod运行加载的工具镜像对文件进行处理得到的处理结果存储到各个pod加载的工具镜像的文件输出路径,再将各个pod加载的工具镜像的文件输出路径上的处理结果传输到各个pod所对应的缓存中的文件输出路径,使得测试人员可以轻松快速地从各个pod所对应的缓存中快速批量的获取文件的处理结果,提升了获取文件的处理结果的效率。
58.在一个示例性实施例中,删除pod可以但不限于包括以下情形之一:情形一:在所述文件集合中的文件均已被处理的情况下,删除所述n个pod。
59.可选地,在本实施例中,在待处理的文件集合中的所有文件均已被处理的情况下,可以表明所有的pod运行加载的工具镜像已经完成当前所有待处理的文件,在这样的情况下,可以销毁pod,释放算力资源。
60.情形二:在所述n个pod中的第i个pod处理完当前分配的文件、且所述文件集合中不存在尚未被处理的文件的情况下,删除所述第i个pod,其中,1≤i≤n。
61.可选地,在本实施例中,在部分pod运行加载的工具镜像已经完成当前所分配的文件,并且待处理的文件集合中已经不存在尚未被处理的文件的情况下,可以表明,当前完成文件处理的pod已经没后续需要处理的文件,在这样的情况下,可以销毁处理完数据的pod,而无需等待所有的pod均已完成所分配的文件的处理,提升了释放算力资源的效率。
62.为了更好的理解上述文件处理的过程,以下再结合可选实施例对上述文件处理方法的流程进行说明,但不用于限定本技术实施例的技术方案。
63.在本实施例中提供了一种文件处理方法,图9是根据本技术实施例的一种文件处理方法的应用场景示意图,如图9所示,可以但不限于将使用c++语言开发的工具、python语言开发的工具、java语言开发的工具以及其他计算机语言开发的工具,根据其所依赖的执行环境和数据平台工具集成规范形成工具镜像存储至镜像库104中(镜像库104可以但不限于为harbor镜像库),通过这样的方式,解决了复杂配置、容易冲突的问题。
64.数据中台102可以通过client-java(k8s api)接口,调用镜像库中存储的工具镜像。在需要对文件进行处理的时候,可以通过数据中台102选择待处理的文件集合,通过k8s sdk接口从镜像库中获取处理文件所需的工具镜像,然后创建pod 1,pod 2,
……
,pod n,并且在每个pod中自动部署相同的工具镜像。pod 1,pod 2,
……
,pod n可以但不限于分别对应着缓存1,缓存2,
……
,缓存n。可以但不限于将pod 1,pod 2,
……
,pod n部署在处理集群所包括的节点1,节点2,
……
,节点n以及算力集群所包括的节点1,节点2,
……
,节点n上。
65.在开始对待处理的文件进行处理的时候,首先将各个pod待处理的文件传输到各个pod所对应的缓存的文件输入路径上,根据各个pod所对应的缓存的文件输入路径与将各个pod加载的工具镜像的文件输入路径之间的映射关系,将各个pod所对应的缓存中的文件输入路径上的文件传输到各个pod中加载的工具镜像的文件输入路径上,分别通过pod 1,pod 2,
……
,pod n运行加载的工具镜像对各个pod的文件输入路径上的文件进行处理,得到文件的处理结果。在这样的情况下,将各个pod文件的处理结果存储到各个pod中加载的工具镜像的文件输出路径上,根据各个pod中加载的工具镜像的文件输出路径与各个pod所对应的缓存中的文件输出路径之间的映射关系,将各个pod中加载的工具镜像1的文件输出路径上存储的文件的处理结果传输到各个pod所对应的缓存的文件输出路径上。然后数据中台可以将各个pod所对应的缓存的文件输出路径上存储的文件的处理结果,存储到所需的对象存储中。并且标记每个文件的处理状态为处理成功或者处理失败,得到每个文件的元数据,并且在处理完所有待处理的文件之后,销毁pod,释放算力资源。
66.图10是根据本技术实施例的一种文件处理方法的示意图二,如图10所示,主要包括如下步骤:步骤s1002:根据工具所依赖的执行环境和平台工具集成规范形成工具镜像,需释
放容器内部工具运行的命令、所处理的文件名的绝对路径、输出文件的文件夹地址、日志的输出文件地址信息,这些信息在工具调用中需要用到。
67.步骤s1004:镜像形成后,上传harbor镜像库(即上述的目标镜像库)。
68.步骤s1002至步骤s1004中,只要符合规范的工具镜像,数据平台都可以兼容,并且提供harbor镜像库统一管理,避免了版本不可控现象。
69.步骤s1006:根据镜像配置信息,借助k8s sdk中create name spaced pod方法的v1pod参数,设置pod所需参数,将工具镜像要求的文件输入路径、输出路径通过nfs的方式挂载到nfs服务器上。
70.步骤s1008:根据业务需求要求的pod部署数量,循环创建功能相同,但是name(名称)和挂载路径不同(即上述的缓存中的文件输入路径和文件输出路径)的pod对象。
71.步骤s1006至步骤s1008使用nfs挂载方式,将容器内部路径挂载出来,实现通过数据中台操作加载数据,实现容器对加载数据的处理,nfs挂载做为一个中间缓存,提供给每一次加载的数据循环使用。
72.步骤s1010:等所有pod创建成功之后,平台通过多线程的方式对文件进行分发执行,根据文件数量定义线程计数器,每个文件处理完毕之后释放一个计数。
73.步骤s1012:使用过nfs-client(网络文件系统客户端)将要处理的文件上传至pod挂载的nfs输入路径上,然后通过k8s sdk提交pod内部的执行命令,在获取到返回值的情况下,删除处理完毕的文件,释放一个计数。
74.步骤s1014:返回值为成功,通过nfs-client上传所需结果数据至存储系统,并增加元数据信息至数据库,标记数据处理成功,同时删除nfs缓存中的源数据,释放一个计数。
75.步骤s1016:返回值为失败,增加元数据信息至数据库,标记数据处理失败,同时删除nfs缓存中的源数据,释放一个计数。
76.步骤s1018:计数器置为0,代表所有文件全部处理完。
77.步骤s1010至步骤s1018中通过过nfs-client操作文件上传删除,灵活实现对单个文件的操作。并且使用线程池控制提交执行文件的数量,监控文件的执行情况,实现文件的有序执行,达到通过数据中台控制文件的目的。
78.步骤s1020:通过k8s sdk销毁运行pod,释放算力资源。
79.图11是根据本技术实施例的一种文件处理装置的结构框图,如图11所示,包括:确定模块1102,用于确定待处理的文件集合;第一处理模块1104,用于响应于目标创建指令,创建n 个计算单元pod,并将目标版本的目标工具的工具镜像分别加载到所述n个pod中,其中,所述目标创建指令用于指示创建的pod的数量为n,并指示使用的工具是所述目标版本的所述目标工具,n为大于或等于2的正整数;第二处理模块1106,用于通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理。
80.通过上述实施例,在需要对一批文件进行批量处理的情况下,可以通过多个pod并行地对多个文件执行相同的处理,提升了文件的处理效率。此外,可以响应目标创建指令,自动部署多个计算单元pod,并且将同一版本的同一工具的工具镜像加载在多个pod中,避免了工具的版本差异所导致的文件处理的不准确。采用上述技术方案,解决了相关技术中,
文件的处理效率较低等问题,实现了提升文件的处理效率的技术效果。
81.在一个示例性实施例中,所述装置还包括:建立模块,用于:在所述通过所述n个pod运行各自加载的所述工具镜像并行地对所述文件集合中的文件进行处理之前,对于所述n个pod中的第i个pod,执行以下步骤,其中,1≤i≤n:将所述第i个pod中加载的所述工具镜像的文件输入路径与n个缓存中的第i个缓存中的文件输入路径建立映射关系,其中,所述第i个pod中加载的所述工具镜像的文件输入路径,以及所述第i个缓存中的文件输入路径,用于获取分配给所述第i个pod处理的文件;将所述第i个pod中加载的所述工具镜像的文件输出路径与所述第i个缓存中的文件输出路径建立映射关系,其中,所述第i个pod中加载的所述工具镜像的文件输出路径,以及所述第i个缓存中的文件输出路径,用于获取所述第i个pod处理文件的结果。
82.在一个示例性实施例中,所述第二处理模块,用于:对于所述n个pod中的第i个pod,执行以下步骤:在所述第i个pod正在处理当前分配的文件,或者,所述第i个pod已处理完所述当前分配的文件的情况下,从所述文件集合中选择尚未被处理的目标文件,将所述目标文件传输到所述第i个缓存中的文件输入路径;在所述第i个pod已处理完所述当前分配的文件的情况下,根据所述第i个pod中加载的所述工具镜像的文件输入路径与所述第i个缓存中的文件输入路径之间的映射关系,将所述第i个缓存中的文件输入路径上的所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径;通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理。
83.在一个示例性实施例中,所述第二处理模块,还用于:对于所述n个pod中的第i个pod,执行以下步骤:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件的数量小于预定数量阈值的情况下,从所述文件集合中选择尚未被处理的文件,将选择的所述尚未被处理的文件传输到所述第i个缓存中的文件输入路径;在所述第i个pod已处理完当前分配的文件的情况下,根据所述第i个pod中加载的所述工具镜像的文件输入路径与所述第i个缓存中的文件输入路径之间的映射关系,将所述第i个缓存中的文件输入路径上存储的目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径,其中,所述目标文件是尚未被处理的文件;通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理。
84.在一个示例性实施例中,所述装置还包括:第一传输模块,用于:在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件中,选择最早传输到所述第i个缓存中的文件输入路径上的文件,作为所述目标文件,并将所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径;或者在所述第i个缓存中的文件输入路径上存储的尚未被处理的文件中,随机选择一个文件,作为所述目标文件,并将所述目标文件传输到所述第i个pod中加载的所述工具镜像的文件输入路径。
85.在一个示例性实施例中,所述装置还包括:存储模块,用于通过所述第i个pod运行加载的所述工具镜像对所述工具镜像的文件输入路径上的所述目标文件进行处理之后,将目标处理结果存储到所述第i个pod中加载的所述工具镜像的文件输出路径,其中,所述目标处理结果是通过所述第i个pod运行加载的所述工具镜像对所述目标文件进行处理所得到的结果;第二传输模块,用于根据所述第i个pod中加载的所述工具镜像的文件输出路径与
only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
94.可选地,本技术实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本技术实施例在此不再赘述。
95.显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
96.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术实施例的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1