掌桥专利:专业的专利平台
掌桥专利
首页

文件分配方法、装置、设备以及存储介质

文献发布时间:2023-06-19 19:30:30


文件分配方法、装置、设备以及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种文件分配方法、装置、设备以及存储介质。

背景技术

在大数据处理中,往往会有海量的文件数据需要处理。目前通常会将这些文件分配给多台设备以进行并行处理。在分配时,往往采用随机的方式进行文件分配,以保证文件容量分配的均匀性。

但是这种随机的方式,在文件大小倾斜(即有的部分文件相对其他文件特别大)时难以保证文件能够均匀地进行分配。

发明内容

本公开提供了一种文件分配方法、装置、设备以及存储介质。

第一方面,本公开的实施例提供了一种文件分配方法,该方法包括:

获取多个待分配文件;

根据多个待分配文件,对预设各分组进行初始化文件分配;

从初始化文件分配后的多个分组中选择已分配文件大小之和最小的分组作为目标分组,并从剩余的待分配文件中选择偏离系数最小的待分配文件为目标文件,将目标文件分配至目标分组;其中,剩余的各待分配文件的偏离系数为目标分组的已分配文件大小之和加上对应的待分配文件的大小,并减去分组平均容量之后所得数值的绝对值;

重复上述目标文件分配操作,直到待分配文件分配完毕。

在第一方面的一些可实现方式中,预设各分组的构建包括以下步骤:

根据集群的设备数量,设置分组数量,构建多个分组。

在第一方面的一些可实现方式中,根据多个待分配文件,对预设各分组进行初始化文件分配,包括:

从多个待分配文件中为各分组随机分配预设个数的待分配文件。

在第一方面的一些可实现方式中,根据多个待分配文件,对预设各分组进行初始化文件分配,包括:

根据文件大小对多个待分配文件进行从大到小排序,依次选取大小在前的预设个数的待分配文件分配至各分组。

在第一方面的一些可实现方式中,该方法还包括:

通过分组对应的设备对分组中的文件进行处理。

在第一方面的一些可实现方式中,分组平均容量是通过将多个待分配文件的大小累加,并将累加之和除以分组数量得到的。

第二方面,本公开的实施例提供了一种文件分配装置,该装置包括:

获取模块,用于获取多个待分配文件;

分配模块,用于根据多个待分配文件,对预设各分组进行初始化文件分配;

分配模块,还用于从初始化文件分配后的多个分组中选择已分配文件大小之和最小的分组作为目标分组,并从剩余的待分配文件中选择偏离系数最小的待分配文件为目标文件,将目标文件分配至目标分组;其中,剩余的各待分配文件的偏离系数为目标分组的已分配文件大小之和加上对应的待分配文件的大小,并减去分组平均容量之后所得数值的绝对值;

分配模块,还用于重复上述目标文件分配操作,直到待分配文件分配完毕。

第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如以上所述的方法。

第四方面,本公开的实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如以上所述的方法。

在本公开的实施例中,可以采取劣势者优先分配的原则,每次为所有分组中已分配文件大小之和最小的分组,从当前剩余的待分配文件中选择并分配1个最合适的文件,然后不断循环,直到所有待分配文件都分配完成。如此能够使得文件分配变得非常均匀,且具有实现原理简单,实时性好等优点。

应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了本公开的实施例提供的一种文件分配方法的流程图;

图2示出了本公开的实施例提供的一种文件分配装置的结构图;

图3示出了一种能够实施本公开的实施例的示例性电子设备的结构图。

具体实施方式

为使本公开的实施例的目的、技术方案和优点更加清楚,下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。

另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

针对背景技术中出现的问题,本公开的实施例提供了一种文件分配方法、装置、设备以及存储介质。具体地,获取多个待分配文件;获取多个待分配文件;根据多个待分配文件,对预设各分组进行初始化文件分配;从初始化文件分配后的多个分组中选择已分配文件大小之和最小的分组作为目标分组,并从剩余的待分配文件中选择偏离系数最小的待分配文件为目标文件,将目标文件分配至目标分组;其中,剩余的各待分配文件的偏离系数为目标分组的已分配文件大小之和加上对应的待分配文件的大小,并减去分组平均容量之后所得数值的绝对值;重复上述目标文件分配操作,直到待分配文件分配完毕。

如此一来,可以采取劣势者优先分配的原则,每次为所有分组中已分配文件大小之和最小的分组,从当前剩余的待分配文件中选择并分配1个最合适的文件,然后不断循环,直到所有待分配文件都分配完成。如此能够使得文件分配变得非常均匀,且具有实现原理简单,实时性好等优点。

下面结合附图,通过具体的实施例对本公开的实施例提供的文件分配方法、装置、设备以及存储介质进行详细地说明。

图1示出了本公开的实施例提供的一种文件分配方法的流程图,如图1所示,文件分配方法100可以包括以下步骤:

S110,获取多个待分配文件。

具体地,可以从数据库中获取多个待分配文件,其中,待分配文件可以是HTML文件、XML文件、CSV文件等,在此不做限制。

S120,根据多个待分配文件,对预设各分组进行初始化文件分配。

其中,预设各分组是预先构建的文件分组,其可以是文件列表的形式。

示例性地,预设各分组的构建可以包括以下步骤:

根据集群的设备数量,设置分组数量,构建多个分组,其中,每个设备(例如服务器、计算机)对应一个分组,如此可以使得分组与集群的设备匹配,便于并行处理。

在一些实施例中,可以从多个待分配文件中为各分组随机分配预设个数的待分配文件,以便提高初始化文件分配效率。

例如,存在5个分组,分组1-5,可以从多个待分配文件中随机选择5个待分配文件,并将选中的每个待分配文件随机分配给5个分组。

除此之外,还可以根据文件大小对多个待分配文件进行从大到小排序,依次选取大小在前的预设个数的待分配文件分配至各分组,以便提高初始化文件分配效率。

例如,存在5个分组,分组1-5,12个待分配文件,文件1-12,根据文件大小对12个待分配文件进行从大到小排序,得到排序如下:文件1、文件5、文件10、文件2、文件4、文件6、文件3、文件8、文件7、文件9、文件11、文件12,进而选择文件1分配给分组1、文件5分配给分组2、文件10分配给分组3、文件2分配给分组4、文件4分配给分组5。

S130,从初始化文件分配后的多个分组中选择已分配文件大小之和最小的分组作为目标分组,并从剩余的待分配文件中选择偏离系数最小的待分配文件为目标文件,将目标文件分配至目标分组。

其中,剩余的各待分配文件的偏离系数为目标分组的已分配文件大小之和加上对应的待分配文件的大小,并减去分组平均容量之后所得数值的绝对值。

作为一个示例,目标分组的选择可以使用以下公式表示:

sum(group

其中,group

分组平均容量是通过将多个待分配文件的大小累加,并将累加之和除以分组数量而快速得到的,分组平均容量的计算可以使用以下公式表示:

其中,n表示分组数量,f

剩余的各待分配文件的偏离系数的计算可以使用以下公式表示:

D

其中,f

目标文件的选择可以使用以下公式表示:

size(f

其中,size(f

此时,将目标文件分配至目标分组。

S140,重复上述目标文件分配操作,直到待分配文件分配完毕。

也就是说,每次按照S130所述步骤分配一个待分配文件,重复多次,直到不存在待分配文件。

在本公开的实施例中,可以采取劣势者优先分配的原则,每次为所有分组中已分配文件大小之和最小的分组,从当前剩余的待分配文件中选择并分配1个最合适的文件,然后不断循环,直到所有待分配文件都分配完成。如此能够使得文件分配变得非常均匀,且具有实现原理简单,实时性好等优点。

在一些实施例中,在待分配文件分配完毕之后,还可以从数据库中获取另一批待分配文件,在当前分组的基础上继续进行文件分配。

需要注意的是,还可以通过分组对应的设备对分组中的文件进行处理,例如加密处理、混淆处理、去重处理等,在此不做限制。

以此方式,可以使各设备处理相近的数据量,进而提高并行处理效率。

下面结合一个具体实施例,对本公开的实施例提供的文件分配方法进行详细介绍,具体如下:

获取多个待分配文件,如下所示(仅显示待分配文件的大小,单位为字节):[100,100,70,60,90,30,110,2,3,4,5,6,7,8,9,10],设定分组数量从1到6,然后按照所述文件分配方法100进行分配,分配结结果如表1所示,可以看出按照文件分配方法100进行分配后,虽然每组的文件数量不同,但是已分配文件大小之和(即total)非常接近。

表1

/>

在另一实施例中,按照所述文件分配方法100将720个总容量为7.18TB的文件分为10组,原始文件如表2所示(仅显示待分配文件的大小,单位为Byte):

表2

/>

分配结果如表3所示:

表3

可以看到,各组已分配文件大小之和非常接近,方差小于0.0001%,换句话说,采用本公开的实施例提供的文件分配方法100可以使得文件分配变得非常均匀。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。

以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。

图2示出了本公开的实施例提供的一种文件分配装置的结构图,如图2所示,文件分配装置200可以包括:

获取模块210,用于获取多个待分配文件。

分配模块220,用于根据多个待分配文件,对预设各分组进行初始化文件分配。

分配模块220,还用于从初始化文件分配后的多个分组中选择已分配文件大小之和最小的分组作为目标分组,并从剩余的待分配文件中选择偏离系数最小的待分配文件为目标文件,将目标文件分配至目标分组。其中,剩余的各待分配文件的偏离系数为目标分组的已分配文件大小之和加上对应的待分配文件的大小,并减去分组平均容量之后所得数值的绝对值。

分配模块220,还用于重复上述目标文件分配操作,直到待分配文件分配完毕。

在一些实施例中,预设各分组的构建包括以下步骤:

根据集群的设备数量,设置分组数量,构建多个分组。

在一些实施例中,分配模块220具体用于:

从多个待分配文件中为各分组随机分配预设个数的待分配文件。

在一些实施例中,分配模块220具体用于:

根据文件大小对多个待分配文件进行从大到小排序,依次选取大小在前的预设个数的待分配文件分配至各分组。

在一些实施例中,文件分配装置200还包括:

处理模块,用于通过分组对应的设备对分组中的文件进行处理。

在一些实施例中,分组平均容量是通过将多个待分配文件的大小累加,并将累加之和除以分组数量得到的。

可以理解的是,图2所示的文件分配装置200中的各个模块/单元具有实现图1所示的文件分配方法100中的各个步骤的功能,并能达到其相应的技术效果,为了简洁,在此不再赘述。

图3示出了一种能够实施本公开的实施例的示例性电子设备的结构图。电子设备300旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备300还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图3所示,电子设备300可以包括计算单元301,其可以根据存储在只读存储器(ROM)302中的计算机程序或者从存储单元308加载到随机访问存储器(RAM)303中的计算机程序,来执行各种适当的动作和处理。在RAM303中,还可存储电子设备300操作所需的各种程序和数据。计算单元301、ROM302以及RAM303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。

电子设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许电子设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元301执行上文所描述的各个方法和处理,例如方法100。例如,在一些实施例中,方法100可被实现为计算机程序产品,包括计算机程序,其被有形地包含于计算机可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM302和/或通信单元309而被载入和/或安装到设备300上。当计算机程序加载到RAM303并由计算单元301执行时,可以执行上文描述的方法100的一个或多个步骤。备选地,在其他实施例中,计算单元301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法100。

本文中以上描述的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,计算机可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读介质可以是计算机可读信号介质或计算机可读储存介质。计算机可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

需要注意的是,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行方法100,并达到本公开的实施例执行其方法达到的相应技术效果,为简洁描述,在此不再赘述。

另外,本公开还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序在被处理器执行时实现方法100。

为了提供与用户的交互,可以在计算机上实施以上描述的实施例,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将以上描述的实施例实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种数据存储方法、调度装置、系统、设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 一种文件分配方法及装置、存储介质及电子设备
  • 数据文件分配方法及装置、智能设备和计算机存储介质
技术分类

06120115930336