一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据文件分配方法及装置、智能设备和计算机存储介质与流程

2021-10-19 23:54:00 来源:中国专利 TAG:装置 分配 智能 计算机 文件


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.在计算机节点放置数据文件的过程中,无法根据分布式环境合理的将数据文件均衡分配并放置至各个计算机节点,因此本发明提供的数据文件分配方法及装置、智能设备和计算机存储介质,通过按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序;按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等;对每个数据块中的数据文件进行两两合并以更新所述数
据文件;返回执行所述按照各个数据文件的访问频率对数据文件进行排序的步骤,直至所述数据文件的数量达到分布式节点的数量;将所述数据文件放置至对应的分布式节点,解决了现有技术中数据文件分配不均衡导致分布式系统不稳定的问题,提高分布式系统的稳定性。
附图说明
35.图1为本发明实施例涉及的智能设备结构示意图;
36.图2为本发明数据文件分配方法的第一实施例的流程示意图;
37.图3为本发明数据文件分配方法的第二实施例的流程示意图;
38.图4为本发明数据文件分配方法的第三实施例的流程示意图;
39.图5为本发明数据文件分配方法的第四实施例的流程示意图;
40.图6为本发明数据文件分配方法的第五实施例的流程示意图;
41.图7为本发明数据文件分配方法的第六实施例的流程示意图;
42.图8为数据文件分配的示意图;
43.图9为本发明数据文件分配装置的结构示意图;
44.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
45.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
46.本技术为解决现有技术中数据文件分配不均衡导致分布式系统不稳定的问题,通过按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序;按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等;对每个数据块中的数据文件进行两两合并以更新所述数据文件;返回执行所述按照各个数据文件的访问频率对数据文件进行排序的步骤,直至所述数据文件的数量达到分布式节点的数量;将所述数据文件放置至对应的分布式节点的技术方案,提高分布式系统的稳定性。
47.为了更好地理解上述技术方案,下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
48.如图1所示,图1为本发明实施例方案涉及的硬件运行环境的结构示意图。
49.需要说明的是,图1即可为智能设备的硬件运行环境的架构示意图。
50.如图1所示,该智能设备可以包括:处理器1001,例如cpu,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non

volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
51.本领域技术人员可以理解,图1所示的智能设备结构并不构成对智能设备的限定,智能设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
52.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据文件分配程序。其中,操作系统是管理和控制智能设备硬件和软件资源的程序,数据文件分配程序以及其它软件或程序的运行。
53.在图1所示的智能设备中,用户接口1003主要用于连接终端,与终端进行数据通信;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的数据文件分配程序。
54.在本实施例中,智能设备包括:存储器1005、处理器1001及存储在所述存储器上并可在所述处理器上运行的数据文件分配程序,其中:
55.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
56.按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序;
57.按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等;
58.对每个数据块中的数据文件进行两两合并以更新所述数据文件;
59.返回执行所述按照各个数据文件的访问频率对数据文件进行排序的步骤,直至所述数据文件的数量达到分布式节点的数量;
60.将所述数据文件放置至对应的分布式节点。
61.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
62.根据所述数据文件的数量以及所述分布式节点的数量确定目标数量;
63.按照排序后的顺序将所述数据文件分割为所述目标数量的数据块。
64.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
65.获取所述数据文件的数量与所述分布式节点的数量的倍数之间的第一比值;
66.将所述第一比值作为所述目标数量。
67.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
68.获取所述数据文件的数量与所述分布式节点的数量之间的第二比值;
69.在所述第二比值为非整数时,生成虚拟文件作为所述数据文件,并将生成的所述数据文件的访问频率设置为零。
70.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
71.将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,在首次合并时,所述第一目标文件为所述数据列首位的数据文件,所述第二目标文件为所述数据列末尾的数据文件;
72.将所述数据列中当前的所述第一目标文件中的下一数据文件更新为所述第一目
标文件,将所述数据列中当前的所述第二目标文件中的前一数据文件更新为所述第二目标文件;
73.返回执行所述将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,直至合并完所述数据块中的所有所述数据文件。
74.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
75.合并得到的新的所述数据文件的访问频率为合并前的两个数据文件的访问频率之和。
76.在本技术实施例中,处理器1001可以用于调用存储在存储器1005中的数据文件分配程序,并执行以下操作:
77.将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件放置至第一分布式节点;
78.将所述数据列中当前的所述第一目标文件中的下一数据文件以及所述数据列中当前的所述第二目标文件中的前一数据文件放置至第二分布式节点,直至放置完所有数据块中的所有所述数据文件。
79.由于本技术实施例提供的智能设备,为实施本技术实施例的方法所采用的智能设备,故而基于本技术实施例所介绍的方法,本领域所属人员能够了解该智能设备的具体结构及变形,故而在此不再赘述。凡是本技术实施例的方法所采用的智能设备都属于本技术所欲保护的范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
80.对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
81.基于上述结构,提出本发明的实施例,本技术应用所述的数据文件分配方法的操作系统包括但不限于linux、android、windows7以及windows 10等,所述数据文件分配方法可应用于智能设备上。
82.参照图2,图2为本发明数据文件分配方法的第一实施例的流程示意图,包括以下步骤:
83.步骤s110,按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序;
84.在本实施例中,在云计算环境中,将多台具有计算、存储、通讯功能的计算机节点通过网络线路进行连接,形成由多个计算机节点组成的分布式系统,并在统一的分布式系统软件,例如hadoop、zookeeper等分布式系统软件的协作下,可以并行的在各个节点上执行各种数据存储或者分布式计算等任务。在分布式系统中,无论是分布式存储还是分布式机器学习等应用场景,将数据文件按一定的策略放置到各个节点的问题,使得整个分布式系统中每个节点的cpu计算负载、数据文件读写负载、软件服务请求负载、网络i/o负载等都比较均衡,在保证系统稳定性和可靠性的同时使得整个分布式系统的资源利用率达到最大。本技术提供了一种用于分布式环境中数据文件的分配方法,该方法能够根据数据文件的访问频率将多个数据文件放置到分布式环境中对应的计算机节点上,使得每个节点上放
置的数据文件的访问频率之和趋于相同,从而达到分布式环境中节点上数据文件的读写负载均衡的目的,提高分布式系统的稳定性。
85.在本实施例中,所述数据文件又称为文件,是指任何保存数据的计算机文件,这些数据文件可以是任何类型的数据存储文件,例如,图像数据文件、音频数据文件等;所述数据文件一般保存在特定的数据库中,当检测到数据文件被点击一次时,保存该数据文件的数据表字段就会增加一,从而得到数据文件的访问频率;每个数据文件的大小存在不一致,一般情况下,音频数据文件要比图像数据文件占用的内存大,如果将占用内存较大的多个音频数据文件放置在同一个计算机节点,将占用内存较小的多个图像数据文件放置在另一个计算机节点,会导致计算机节点负载不均衡,因此,需要按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序,其中,所述降序是指将各个数据文件按照访问频率从大到小进行排序,所述升序是指将各个数据文件按照访问频率从小到大进行排序,例如,存在1个包含12个数据文件的集合s={s1,s2,

,s12},其对应的访问频率序列为(12,20,10,6,9,2,32,36,23,16,4,8),按照数据文件的访问频率集合中的数据文件进行降序,得到排序后的数据文件序列为(s8,s7,s9,s2,s10,s1,s3,s5,s12,s4,s11,s6),其对应的访问频率序列为(36,32,23,20,16,12,10,9,8,6,4,2),按照数据文件的访问频率集合中的数据文件进行升序,得到排序后的数据文件序列为(s6,s11,s4,s12,s5,s3,s1,s10,s2,s9,s7,s8),其对应的访问频率序列为(2,4,6,8,9,10,12,16,20,23,32,36),需要特别注意的是数据文件集合中的每个数据文件的访问频率为正整数,本技术以对数据文件按照访问频率进行从大到小进行排序,即排序方式为降序的方式进行展开描述,而升序的处理方式与降序的处理方式类似,这里将不再赘述。
86.步骤s120,按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等;
87.在本实施例中,为了方便对数据文件进行后续的处理,因此,需要将升序或者降序后的数据文件划分为至少两个数据块,同时,在划分的过程中,需要将集合中的数据文件从左到右或者从右到左进行平均划分,使得划分后各个数据块中的数据文件的数量是相等的;在数据文件的数量以及计算机节点的个数已知的情况下,根据集合中数据文件的数量以及计算机节点的数量计算需要划分的数据块的数量,其需划分得到的数据块的数量等于|s|/2b,其中,s为集合中数据文件的数量,b为计算机节点的数量,例如,当存在一个包含12个数据文件的集合时,当需要将这12个数据文件均衡放置在3个计算机节点上,那么,可计算得到需要划分的数据块的数量为2块,则此时,每个块上放置的数据文件的数量为6个,每个计算机节点上放置的数据文件的数量为4个,例如,将步骤s110中的数据文件集合(s8,s7,s9,s2,s10,s1,s3,s5,s12,s4,s11,s6)进行划分为两块,得到块1(s8,s7,s9,s2,s10,s1)以及块2(s3,s5,s12,s4,s11,s6),块1与块2中对应的数据文件的访问频率分别为(36,32,23,20,16,12)与(10,9,8,6,4,2),假设将每个数据文件放到1个桶内,则每个块中对应6个桶。
88.步骤s130,对每个数据块中的数据文件进行两两合并以更新所述数据文件;
89.在本实施例中,对每个数据块中的数据文件进行两两合并得到新的数据文件,其中两两合并是指将数据块中位于首位的数据文件与数据块中位于末位的数据文件的访问频率进行合并,合并得到的新的所述数据文件的访问频率为合并前的两个数据文件的访问
频率之和;例如,将块1(s8,s7,s9,s2,s10,s1)中对应的数据文件的访问频率(36,32,23,20,16,12)进行两两合并,以及将块2(s3,s5,s12,s4,s11,s6)中对应的数据文件的访问频率(10,9,8,6,4,2)进行两两合并,假设每个块中的每个数据文件分别放到1个桶内,则每个块中对应有6个桶,那么对每个块中的数据文件进行两两合并之后,块1合并后的结果变为({s8,s1},{s7,s10},{s9,s2}),其中{s8,s1}形成1个新的桶,{s7,s10}形成1个新的桶,{s9,s2}形成1个新的桶,这3个新桶的访问频率分别为其包含的数据文件的访问频率之和,即有(48,48,43);类似的,块2合并后的结果变为({s3,s6},{s5,s11},{s12,s4}),其中,块2中的这3个新桶的访问频率为(12,13,14)。
90.步骤s140,返回执行所述按照各个数据文件的访问频率对数据文件进行排序的步骤,直至所述数据文件的数量达到分布式节点的数量;
91.在本实施例中,当进行首轮数据文件合并之后,块1对应的数据文件的访问频率之和为(48,48,43),块2对应的数据文件的访问频率之和为(12,13,14),此时,无法对每个块中的数据文件再次进行两两合并,因此,需要将块1与块2中的数据文件的访问频率进行组合,组合后得到6个新桶,每个新桶中包含了两个数据文件,因为组合后的集合中的数据文件对应的访问频率(48,48,43,12,13,14)的排序是不规则的,因此,需要返回执行按照各个数据文件的访问频率对数据文件进行排序的步骤,对组合后的集合中的数据文件按照访问频率进行排序,得到排序后的桶序列({s8,s1},{s7,s10},{s9,s2},{s12,s4},{s5,s11},{s3,s6}),即该桶序列中包含六个桶,每个桶内对应的数据文件的访问频率序列为(48,48,43,14,13,12),此时,通过计算判断是否仍继续对该桶内的数据文件进行划分,在这个过程中,通过对排序后的桶序列从左到右进行划分,同样的,根据数据文件的数量以及计算机节点的数量计算所需划分的数据块的数量,其需划分得到的数据块的数量还是等于|s|/2b,此时,数据文件的数量为6,分布式节点的数量为3,则计算得到需要划分的数据块的数量为1,当数据块的数量为1时,则表明不需要再对排序后的桶序列进行划分,对桶序列({s8,s1},{s7,s10},{s9,s2},{s12,s4},{s5,s11},{s3,s6})中的桶内的数据文件进行两两合并,即第1个桶与第6个桶归并,第2个桶与第5个桶归并,第3个桶与第4个桶归并,得到归并后的结果({s8,s1,s3,s6},{s7,s10,s5,s11},{s9,s2,s12,s4});归并后得到的这3个新桶的访问频率分别为其桶内数据文件访问频率之和,即(48 12,48 13,43 14)=(60,61,57),此时有3个桶,每个桶内放置有4个数据文件,将每个桶内的4个数据文件更新为一个新的数据文件,此时每个桶分别对应1个新的数据文件,即3个新的数据文件,此时新的数据文件的数量达到分布式节点的数量。
92.步骤s150,将所述数据文件放置至对应的分布式节点。
93.在本实施例中,当将数据文件进行两两合并直到数据文件的数量达到分布式节点的数量时,此时,将数据文件放置至对应的分布式节点上,例如,由于最后一轮合并得到了3个桶,每个桶内包含有4个数据文件,因此,划分和合并过程结束,得出在3个分布式节点上放置数据文件的最终方案,例如,可以将第1个桶的数据文件集合{s8,s1,s3,s6}放置到计算机节点1,第2个桶的数据文件集合{s7,s10,s5,s11}放置到计算机节点2,第3个桶的数据文件集合{s9,s2,s12,s4}放置到计算机节点3,这3个节点上的数据文件访问频率分别为(60,61,57),其中,节点上数据文件访问频率的最大差值仅为61

57=4,即访问频率的最大差值约为节点平均访问频率的4/((60 61 57)/3)*100%=6%,可看出3个节点上的数据文
件读写较为均衡。
94.在本实施例中,如图8所示将24个数据文件划分成4个数据块,每个数据块包含2b=6个数据文件,即总的分布式计算机节点个数为b=3,每个节点需要放置24/3=8个数据文件;其中每个柱形代表1个数据文件,其高度代表访问频率大小,每个柱形上的数字代表该数据文件要放置在哪个桶。
95.在本实施例的技术方案中,通过按照各个数据文件的访问频率对数据文件进行排序,按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等,对每个数据块中的数据文件进行两两合并以更新所述数据文件,返回执行所述按照各个数据文件的访问频率对数据文件进行排序的步骤,直至所述数据文件的数量达到分布式节点的数量,得到每个计算机节点需要分配哪些数据文件的策略,通过该策略将所述数据文件放置至对应的分布式节点,解决现有技术中数据文件分配不均衡导致分布式系统不稳定的问题,提高分布式系统的稳定性。
96.参照图3,图3为本发明数据文件分配方法的第二实施例的流程示意图,第二实施例中的步骤s121

步骤s122是第一实施例中步骤s120的细化步骤,所述第二实施包括以下步骤:
97.步骤s121,根据所述数据文件的数量以及所述分布式节点的数量确定目标数量;
98.步骤s122,按照排序后的顺序将所述数据文件分割为所述目标数量的数据块。
99.在本实施例中,获取数据文件,根据数据文件的数量以及预先设置的分布式节点的数量计算需要分割的数据块的目标数量,对数据文件根据预设的排序方式进行排序,所述排序方式包括升序或者降序,按照排序后的顺序将数据文件分割为目标数量的数据块,其中,根据集合中数据文件的数量以及计算机节点的数量计算需要划分的数据块的数量,其需划分得到的数据块的数量等于|s|/2b,其中,s为集合中数据文件的数量,b为计算机节点的数量,例如,当存在一个包含24个数据文件的集合时,当需要将这24个数据文件均衡放置在3个计算机节点上,那么,可计算得到需要划分的数据块的数量为4块。
100.在本实施例的技术方案中,根据所述数据文件的数量以及所述分布式节点的数量确定目标数量,按照排序后的顺序,将所述数据文件分割为所述目标数量的数据块,从而将数据文件进行合理划分。
101.参照图4,图4为本发明数据文件分配方法的第三实施例的流程示意图,第三实施例中的步骤s1211

步骤s1212是第二实施例中步骤s121的细化步骤,所述第三实施包括以下步骤:
102.步骤s1211,获取所述数据文件的数量与所述分布式节点的数量的倍数之间的第一比值;
103.步骤s1212,将所述第一比值作为所述目标数量。
104.在本实施例中,数据块的目标数量与数据文件的数量、分布式节点的数量的倍数之间存在关联,根据实际情况,所述分布式节点的数量的倍数为2,获取数据文件的数量与分布式节点的数量的倍数之间的第一比值,所述第一比值为|s|/2b,所述第一比值为数据块的目标数量,其中,s为集合中数据文件的数量,b为计算机节点的数量,最终的第一比值必须为一个正整数,即划分得到的数据块的目标数量为一个正整数。
105.在本实施例的技术方案中,获取所述数据文件的数量与所述分布式节点的数量的
倍数之间的第一比值,将所述第一比值作为所述目标数量,从而得到需要划分的数据块的目标数量。
106.参照图5,图5为本发明数据文件分配方法的第四实施例的流程示意图,第四实施例中的步骤s210

步骤s220位于第一实施例中步骤s110之前,所述第四实施包括以下步骤:
107.步骤s210,获取所述数据文件的数量与所述分布式节点的数量之间的第二比值;
108.步骤s220,在所述第二比值为非整数时,生成虚拟文件作为所述数据文件,并将生成的所述数据文件的访问频率设置为零;
109.在本实施例中,因为获取的数据文件的数量可能不能均衡的放置在分布式节点上,或者数据文件的数量不能均匀的划分,例如,当获取的数据文件的数量为11时,此时,需要将数据文件的数量均匀的放置在3个计算机节点上,根据|s|/2b计算得到的数据块的数量不是一个正整数,因此,在将数据文件进行排序之前,需要判断每个计算机节点上是否能均匀的放置相同数量的数据文件或者划分得到的数据块中数据文件的数量是否是相等的,在这个判断过程中,获取数据文件的数量与分布式节点的数量之间的第二比值,在该第二比值为非整数时,在数据文件集合中添加若干数据的虚拟文件,同时,将每个虚拟文件的访问频率设置为0;例如,存在一个数据文件集合s={s1,s2,

,sn},其中,集合中的每个数据文件的访问频率为一个正整数;假设分布式环境中计算机节点的数量为b,如果|s|不能够整除b,则需要往s中添加若干个虚拟数据文件s0,并将每个虚拟文件的访问频率设为0,使得数据文件个数|s|能够整除b,即|s|mod b=0,其中c=|s|/b为分布式环境中每个计算机节点需要放置的数据文件个数。
110.步骤s230,按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序;
111.步骤s240,按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等;
112.步骤s250,对每个数据块中的数据文件进行两两合并以更新所述数据文件;
113.步骤s260,返回执行所述按照各个数据文件的访问频率对数据文件进行排序的步骤,直至所述数据文件的数量达到分布式节点的数量;
114.步骤s270,将所述数据文件放置至对应的分布式节点。
115.在本实施例的技术方案中,获取所述数据文件的数量与所述分布式节点的数量之间的第二比值,在所述第二比值为非整数时,生成虚拟文件作为所述数据文件,并将生成的所述数据文件的访问频率设置为零,使得每个数据块中的数据文件的数量相等。
116.参照图6,图6为本发明数据文件分配方法的第五实施例的流程示意图,第五实施例中的步骤s131

步骤s133是第一实施例中步骤s130的细化步骤,所述第五实施包括以下步骤:
117.步骤s131,将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,在首次合并时,所述第一目标文件为所述数据列首位的数据文件,所述第二目标文件为所述数据列末尾的数据文件;
118.步骤s132,将所述数据列中当前的所述第一目标文件中的下一数据文件更新为所述第一目标文件,将所述数据列中当前的所述第二目标文件中的前一数据文件更新为所述第二目标文件;
119.步骤s133,返回执行所述将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,直至合并完所述数据块中的所有所述数据文件。
120.在本实施例中,将数据集合中的数据文件分割为多个数据块时,每个数据块又对应形成一个由数据文件组成的数据列,将所述数据块中由数据文件组成的数据列中的数据文件进行两两合并,直至合并完数据块中的所有所述数据文件,其中,两两合并的过程为:将数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,在首次合并时,所述第一目标文件为所述数据列首位的数据文件,所述第二目标文件为所述数据列末尾的数据文件,将所述数据列中当前的所述第一目标文件中的下一数据文件更新为所述第一目标文件,将所述数据列中当前的所述第二目标文件中的前一数据文件更新为所述第二目标文件。
121.在本实施例中,对每一块进行归并,将第1个桶中的数据文件与最后1个桶中的数据文件放在一起形成1个新的桶,第2个桶中的数据文件与倒数第2个桶中的数据文件放在一起形成1个新的桶,即第i个与第2b

i 1个桶中的数据文件放在一起形成1个新的桶;经过归并后,每一块将形成b个新的桶,每个新的桶中包含两个数据文件,该桶的访问频率为其中两个数据文件访问频率之和;例如,将步骤s110中的数据文件集合(s8,s7,s9,s2,s10,s1,s3,s5,s12,s4,s11,s6)进行划分为两块,得到块1的数据列(s8,s7,s9,s2,s10,s1)以及块2的数据列(s3,s5,s12,s4,s11,s6),以块1为例,首次合并时,所述块1的数据列(s8,s7,s9,s2,s10,s1)中的s8为第一目标文件,s1为第二目标文件,将s8与s1进行合并,得到更新后的数据文件{s8,s1},当s8与s1合并后,块1的数据列中当前的第一目标文件对应的下一数据文件s7更新为所述第一目标文件,将数据列中当前的所述第二目标文件中的前一数据文件s10更新为第二目标文件,将s7与s10进行合并,得到更新后的数据文件{s7,s10},以此类推,直至合并完所述数据块中的所有所述数据文件
122.在本实施例的技术方案中,将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,将所述数据列中当前的所述第一目标文件中的下一数据文件更新为所述第一目标文件,将所述数据列中当前的所述第二目标文件中的前一数据文件更新为所述第二目标文件,不断使更新第一目标文件与第二目标文件合并以得到更新后的所述数据文件,直至合并完所述数据块中的所有所述数据文件,从而实现数据文件两两合并的过程。
123.参照图7,图7为本发明数据文件分配方法的第六实施例的流程示意图,第六实施例中的步骤s151

步骤s152是第五实施例中步骤s150的细化步骤,所述第六实施例包括以下步骤:
124.步骤s151,将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件放置至第一分布式节点;
125.步骤s152,将所述数据列中当前的所述第一目标文件中的下一数据文件以及所述数据列中当前的所述第二目标文件中的前一数据文件放置至第二分布式节点,直至放置完所有数据块中的所有所述数据文件。
126.在本实施例中,当将数据文件进行两两合并直到数据文件的数量达到分布式节点的数量时,此时,将数据文件放置至对应的分布式节点上,其中,数据文件的放置过程包括:
将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件放置至第一分布式节点;将所述数据列中当前的所述第一目标文件中的下一数据文件以及所述数据列中当前的所述第二目标文件中的前一数据文件放置至第二分布式节点,直至放置完所有数据块中的所有所述数据文件;例如,基于第五实施例中最终数据文件两两合并得到的结果为({s8,s1},{s7,s10},{s9,s2},{s12,s4},{s5,s11},{s8,s1}),将所述数据块中由数据文件组成的数据列中的第一目标文件{s8,s1}和第二目标文件{s8,s1},即{s8,s1,s3,s6}放置至第一分布式节点,将所述数据列中当前的所述第一目标文件中的下一数据文件{s7,s10}以及所述数据列中当前的所述第二目标文件中的前一数据文件{s5,s11},即{s7,s10,s5,s11}放置至第二分布式节点,直至放置完所有数据块中的所有所述数据文件。
127.在本实施例的技术方案中,将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件放置至第一分布式节点,将所述数据列中当前的所述第一目标文件中的下一数据文件以及所述数据列中当前的所述第二目标文件中的前一数据文件放置至第二分布式节点,直至放置完所有数据块中的所有所述数据文件,实现将数据文件均衡放置至对应的计算机节点。
128.基于同一发明构思,本发明还提供一种数据文件分配装置,如图9所示,图9为本发明数据文件分配装置的结构示意图,所述数据文件分配装置包括:排序模块10、划分模块20、合并模块30以及放置模块40,下面将对各个模块进行展开描述:
129.排序模块10,用于按照各个数据文件的访问频率对数据文件进行排序,所述排序方式包括升序或者降序;
130.划分模块20,用于按照排序后的顺序将所述数据文件分割为至少两个数据块,其中,各个数据块的数据文件的数量相等;进一步的,所述划分模块20用于根据所述数据文件的数量以及所述分布式节点的数量确定目标数量;按照排序后的顺序将所述数据文件分割为所述目标数量的数据块;进一步的,所述划分模块20用于获取所述数据文件的数量与所述分布式节点的数量的倍数之间的第一比值;将所述第一比值作为所述目标数量;
131.合并模块30,用于对每个数据块中的数据文件进行两两合并得到以更新所述数据文件;进一步的,所述合并模块30用于将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,在首次合并时,所述第一目标文件为所述数据列首位的数据文件,所述第二目标文件为所述数据列末尾的数据文件;将所述数据列中当前的所述第一目标文件中的下一数据文件更新为所述第一目标文件,将所述数据列中当前的所述第二目标文件中的前一数据文件更新为所述第二目标文件;返回执行所述将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件合并以得到更新后的所述数据文件,直至合并完所述数据块中的所有所述数据文件;
132.放置模块40,用于将所述数据文件放置至对应的分布式节点;进一步的,所述放置模块40用于将所述数据块中由数据文件组成的数据列中的第一目标文件和第二目标文件放置至第一分布式节点;将所述数据列中当前的所述第一目标文件中的下一数据文件以及所述数据列中当前的所述第二目标文件中的前一数据文件放置至第二分布式节点,直至放置完所有数据块中的所有所述数据文件。
133.由于采用了排序模块、划分模块、合并模块以及放置模块组成的装置,为所述数据文件分配方法提供了硬件虚拟装置,解决了现有技术中数据文件分配不均衡导致分布式系
统不稳定的问题,提高分布式系统的稳定性。
134.基于同一发明构思,本技术实施例还提供了一种计算机存储介质,所述计算机存储介质存储有数据文件分配程序,所述数据文件分配程序被处理器执行时实现如上所述的数据文件分配方法的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
135.由于本技术实施例提供的计算机存储介质,为实施本技术实施例的方法所采用的计算机存储介质,故而基于本技术实施例所介绍的方法,本领域所属人员能够了解该计算机存储介质的具体结构及变形,故而在此不再赘述。凡是本技术实施例的方法所采用的计算机存储介质都属于本技术所欲保护的范围。
136.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
137.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或确定机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有确定机可用程序代码的确定机可用计算机存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的确定机程序产品的形式。
138.本发明是参照根据本发明实施例的方法、设备(系统)、和确定机程序产品的流程图和/或方框图来描述的。应理解可由确定机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些确定机程序指令到通用确定机、专用确定机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过确定机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
139.这些确定机程序指令也可存储在能引导确定机或其他可编程数据处理设备以特定方式工作的确定机可读存储器中,使得存储在该确定机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
140.这些确定机程序指令也可装载到确定机或其他可编程数据处理设备上,使得在确定机或其他可编程设备上执行一系列操作步骤以产生确定机实现的处理,从而在确定机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
141.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的确定机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为标识。
142.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
143.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围
之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜