发明内容
本发明实施例提供一种Hadoop集群中数据备份的方法,可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。本发明实施例还提供了相应的设备及系统。
本发明第一方面提供一种Hadoop集群中数据备份的方法,包括:
获取每个计算节点所具有的各种应用能力值;
确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数;
确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点;
将所述待调整数据块备份到确定的所述前N个可用计算节点上。
结合第一方面,在第一种可能的实现方式中,所述确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,包括:
将需要备份N份的所述待调整数据块预先备份到N个预选择的计算节点上,所述N个预选择的计算节点分别具有所述各种应用能力值中一种最大的应用能力值;
在所述N个预选择的计算节点分别对所述待调整数据块进行处理时,记录所述N个预选择的计算节点各自对所述待调整数据块的处理效率;
根据所述N个预选择的计算节点各自对所述待调整数据块的处理效率,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述将所述待调整数据块备份到确定的所述前N个可用计算节点上,包括:
将所述待调整数据块,从所述N个预选择的计算节点迁移备份到所述前N个可用计算节点。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述获取每个计算节点所具有的各种应用能力值,包括;
获取所述每个计算节点的硬件参数;
根据预置的所述各种应用能力值与所述硬件参数的对应关系,从所述硬件参数中选择与所述各种应用能力值对应的硬件参数,计算所述各种应用能力值。
结合第一方面、第一方面第一种至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述获取每个计算节点所具有的各种应用能力值之后,所述方法还包括:
根据所述各种应用能力值构建全局有序节点链表,所述全局有序节点链表为按照所述各种应用能力值中每种应用能力值大小顺序排列的计算节点链表;
对应的,所述确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,包括:
从所述全局有序节点链表中所述影响最大的应用能力值下,查找所述影响最大的应用能力值最强的前N个可用计算节点。
结合第一方面、第一方面第一种至第四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,包括:
根据所述影响最大的应用能力值和所述每个计算节点的负载能力参数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点。
结合第一方面、第一方面第一种至第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,当所述前N个可用计算节点中包含从未存放过所述待调整数据块的新计算节点,且在确定所述最大的应用能力值时,未考虑所述新计算节点所具有的一种应用能力值,而且所述一种应用能力值满足预置条件时,所述方法还包括:
重新确定所述各种应用能力值中,对待调整数据块的处理效率影响最大的应用能力值。
结合第一方面、第一方面第一种至第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述将所述待调整数据块备份到确定的所述前N个可用计算节点上之后,所述方法还包括:
获取所述待调整数据块被访问次数的表征参数,所述被访问次数的表征参数为所述待调整数据块在预置时间段内被访问的次数;
根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量。
结合第一方面第七种可能的实现方式,在第八种可能的实现方式中,所述根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量,包括:
当所述被访问次数的表征参数满足增加所述待调整数据块的备份数量的条件时,在除出所述前N个可用计算节点之外的剩余计算节点中选择新的备份计算节点,并在所述新的备份计算节点下增加备份,所述新的备份计算节点为所述剩余计算节点中所述影响最大的应用能力值排序在前第一预置数量的可用计算节点。
结合第一方面第七种可能的实现方式,在第九种可能的实现方式中,所述根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量,包括:
当所述被访问次数的表征参数满足减少所述待调整数据块的备份数量的条件时,确定所述前N个可用计算节点中所述影响最大的应用能力值最小的第二预置数量的计算节点,并删除所述第二预置数量的计算节点下的所述待调整数据块,所述第二预置数量小于N。
本发明第二方面提供一种控制数据备份的设备,包括:
获取单元,用于获取每个计算节点所具有的各种应用能力值;
第一确定单元,用于确定所述获取单元获取的所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数;
第二确定单元,用于确定所述每个计算节点中所述第一确定单元确定的所述影响最大的应用能力值最强的前N个可用计算节点;
调度单元,用于将所述待调整数据块备份到所述第二确定单元确定的所述前N个可用计算节点上。
结合第二方面,在第一种可能的实现方式中,所述第一确定单元包括:
备份子单元,用于将需要备份N份的所述待调整数据块预先备份到N个预选择的计算节点上,所述N个预选择的计算节点分别具有所述各种应用能力值中一种最大的应用能力值;
记录子单元,用于在所述N个预选择的计算节点分别对所述备份子单元备份的所述待调整数据块进行处理时,记录所述N个预选择的计算节点各自对所述待调整数据块的处理效率;
确定子单元,用于根据所述记录子单元记录的所述N个预选择的计算节点各自对所述待调整数据块的处理效率,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,
所述调度单元,用于将所述待调整数据块,从所述N个预选择的计算节点迁移备份到所述前N个可用计算节点。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,
所述获取单元,用于获取所述每个计算节点的硬件参数,根据预置的所述各种应用能力值与所述硬件参数的对应关系,从所述硬件参数中选择与所述各种应用能力值对应的硬件参数,计算所述各种应用能力值。
结合第二方面、第二方面第一种至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述设备还包括:
建表单元,用于根据所述获取单元获取的所述各种应用能力值构建全局有序节点链表,所述全局有序节点链表为按照所述各种应用能力值中每种应用能力值大小顺序排列的计算节点链表;
所述第二确定单元,用于从所述建表单元建立的所述全局有序节点链表中所述影响最大的应用能力值下,查找所述影响最大的应用能力值最强的前N个可用计算节点。
结合第二方面、第二方面第一种至第四种可能的实现方式中的任意一种,
所述第二确定单元,用于根据所述影响最大的应用能力值和所述每个计算节点的负载能力参数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点。
结合第二方面、第二方面第一种至第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,当所述前N个可用计算节点中包含从未存放过所述待调整数据块的新计算节点,且在确定所述最大的应用能力值时,未考虑所述新计算节点所具有的一种应用能力值,而且所述一种应用能力值满足预置条件时,所述方法还包括:
所述第一确定单元,还用于重新确定所述各种应用能力值中,对待调整数据块的处理效率影响最大的应用能力值。
结合第二方面、第二方面第一种至第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,
所述获取单元,还用于获取所述待调整数据块被访问次数的表征参数,所述被访问次数的表征参数为所述待调整数据块在预置时间段内被访问的次数;
所述第二确定单元,还用于根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量。
结合第二方面第七种可能的实现方式,在第八种可能的实现方式中,
所述第二确定单元,用于当所述被访问次数的表征参数满足增加所述待调整数据块的备份数量的条件时,在除出所述前N个可用计算节点之外的剩余计算节点中选择新的备份计算节点,并在所述新的备份计算节点下增加备份,所述新的备份计算节点为所述剩余计算节点中所述影响最大的应用能力值排序在前第一预置数量的可用计算节点。
结合第二方面第七种可能的实现方式,在第九种可能的实现方式中,
所述第二确定单元,用于当所述被访问次数的表征参数满足减少所述待调整数据块的备份数量的条件时,确定所述前N个可用计算节点中所述影响最大的应用能力值最小的第二预置数量的计算节点,并删除所述第二预置数量的计算节点下的所述待调整数据块,所述第二预置数量小于N。
本发明第三方面提供一种主节点设备,包括:输入设备、输出设备、存储器和处理器,
其中,所述处理器用于执行如下步骤:
获取每个计算节点所具有的各种应用能力值;
确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数;
确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点;
将所述待调整数据块备份到确定的所述前N个可用计算节点上。
本发明第四方面提供一种Hadoop集群系统,包括:主节点设备和多个计算节点;
所述多个计算节点用于存储待调整数据块和处理所述待调整数据块;
所述主节点设备用于获取每个计算节点所具有的各种应用能力值,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,将所述待调整数据块备份到确定的所述前N个可用计算节点上。
本发明实施例采用获取每个计算节点所具有的各种应用能力值,确定所述各种应用能力中对待调整数据块的处理效率影响最大的应用能力,以及所述待调整数据块的备份数量N,所述N为大于1的整数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,将所述待调整数据块备份到确定的所述前N个可用计算节点上。与现有技术中数据块并没有备份到处理该数据块能力最强的计算节点上相比,本发明实施例提供的方法,可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。
具体实施方式
本发明实施例提供一种Hadoop集群中数据备份的方法,可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。本发明实施例还提供了相应的设备及系统。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Hadoop是一个分布式系统基础架构,由Apache基金会所开发。用户可以充分利用Hadoop集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(HadoopDistributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
参阅图1,本发明实施例提供的Hadoop集群中数据备份的方法的一实施例包括:
101、获取每个计算节点所具有的各种应用能力值。
各种应用可以包括为计算、输入(Input,I)/输出(Output,O)、图像处理和流媒体等应用。
各种应用能力值可以通过下面的方式获取:
以计算能力值和I/O能力值为例进行说明:
获取每个计算节点的计算能力值——X
X可以由计算节点的架构、型号确定来确定,架构、型号越新、速度越快的CPU,对应的X值越大。
当然,获取每个计算节点的计算能力值时还可以有次计算能力值时还可以考虑核心数、缓存(Cache)大小、延迟、内存总线带宽等。
获取每个计算节点的I/O能力值——Y
计算节点的I/O能力值Y可以由Cache延迟、内存延迟、底层存储访问延迟、网络IO延迟确定,当然,还可以考虑Cache大小、内存大小等因素。
关于各种应用能力值的获取,可以是将各种硬件的能力参数以具体数值的形式表示出来,然后,按照统一的计算规则将具体数值代入,可以求出一个具体的应用能力值,例如:一个计算节点的计算能力值通过硬件参数折算出的具体数值得到,计算的结果为0.95,那么该计算节点的计算能力值就为0.95,I/O能力值也按这种硬件参数折算具体数值的方法计算得到,计算出的I/O能力值为0.60。
102、确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数。
例如:待调整数据块有3个备份,这3个备份分别存储在三个不同的计算节点上,这三个计算节点分别处理该待调整数据块,记录每个计算节点对该数据块的处理效率,例如:处理时间,处理时间最短的计算节点对该待调整数据块影响最大,如果该处理时间最短的计算节点的各种应用能力值中计算能力值最大,则说明计算应用能力值对该待调整数据块影响最大。
103、确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点。
因为在步骤101中已经计算出了每个计算节点的各种应用能力值,所以在确定出计算能力值对所述待调整数据块影响最大时,就可以根据备份数量N确定计算能力值最大的前N个可用计算节点,因为有的计算节点可能负载过重,这样,即使该计算节点的计算能力值很大,也不适合再选择该计算节点备份待调整数据块。
也就是说,在确定计算能力值最大的前N个可用计算节点时,要先排除负载过重,但计算能力值又在前N的计算节点。
104、将所述待调整数据块备份到确定的所述前N个可用计算节点上。
本发明实施例采用获取每个计算节点所具有的各种应用能力值,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,将所述待调整数据块备份到确定的所述前N个可用计算节点上。与现有技术中数据块并没有备份到处理该数据块能力最强的计算节点上相比,本发明实施例提供的方法,可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,可以包括:
将需要备份N份的所述待调整数据块预先备份到N个预选择的计算节点上,所述N个预选择的计算节点分别具有所述各种应用能力值中一种最大的应用能力值;
在所述N个预选择的计算节点分别对所述待调整数据块进行处理时,记录所述N个预选择的计算节点各自对所述待调整数据块的处理效率;
根据所述N个预选择的计算节点各自对所述待调整数据块的处理效率,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值。本发明实施例中,以N取3为例,在选择计算节点时,按照预置的策略选择三个不同应用能力值最大的计算节点,例如:A计算节点的计算能力值在所有计算节点中最强,B计算节点的I/O能力值在所有计算节点中最强,C计算节点的图像处理能力值在所有计算节点中最强。同时A、B、C计算节点的其他能力值最弱或较弱是最好的,这样可以避免可种不同能力值之间的耦合和干扰。
当然,应用类型不限于计算、I/O、图像处理,还可以有其他类型,但需要备份的数量可能会小于应用类型,所以只会选择需要备份数量的计算节点。
在A、B、C三个计算节点分别对待调整数据块进行处理时,记录A、B、C三个计算节点处理该待调整数据块的时间,例如:记录的结果是A计算节点处理待调整数据块最快,用时最短,则可以确定计算应用能力值对该待调整数据块影响最大。
可选地,在上述图1对应的可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述将所述待调整数据块备份到确定的所述前N个可用计算节点上,可以包括:
将所述待调整数据块,从所述N个预选择的计算节点迁移备份到所述前N个可用计算节点。
本发明实施例中,在确定出计算应用能力值对待调整数据块影响最大时,可以确定计算能力值最强的前N个可用计算节点,例如:考虑到负载均衡,确定出计算节点A、计算节点D和计算节点E为计算能力值最强的前3个可用计算节点,则可以将备份在计算节点B上的待调整数据块迁移到计算节点D上,将计算节点C上的待调整数据块迁移到计算节点E上。
可选地,在上述图1对应的实施例或可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述获取每个计算节点所具有的各种应用能力值,可以包括;
获取所述每个计算节点的硬件参数;
根据预置的所述各种应用能力值与所述硬件参数的对应关系,从所述硬件参数中选择与所述各种应用能力值对应的硬件参数,计算所述各种应用能力值。
本发明实施例中,每个计算节点的硬件参数可以包括计算节点处理器的架构、型号、核心数、缓存(Cache)大小、内存总线带宽、Cache延迟、内存延迟、底层存储访问延迟、网络IO延迟等。
例如:计算能力值可以由计算节点的架构、型号来确定,则可以选择算节点的架构、型号的硬件参数,例如:计算节点的架构参数为0.8,型号的硬件参数为0.7,计算能力值与硬件参数的对应关系为:X=a*架构参数+b*型号参数,a和b分别为权重系数,当a=0.7,b=0.5时,可以计算出X=0.91。
按照这种方式,可以分别计算出每个计算节点的各应用能力值。
可选地,在上述图1对应的实施例或可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述获取每个计算节点所具有的各种应用能力值之后,所述方法还可以包括:
根据所述各种应用能力值构建全局有序节点链表,所述全局有序节点链表为按照所述各种应用能力值中每种应用能力值大小顺序排列的计算节点链表;
对应的,所述确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,包括:
从所述全局有序节点链表中所述影响最大的应用能力值下,查找所述影响最大的应用能力值最强的前N个可用计算节点。
本发明实施例中,全局有序节点链表中记录了每种应用能力值下按照该应用能力值的大小排序的计算节点。可以参阅表1对全局有序节点链表进行理解:
表1:全局有序节点链表
计算应用 |
I/O应用 |
图像处理应用 |
流媒体应用 |
A |
B |
C |
D |
B |
C |
A |
A |
C |
D |
B |
E |
D |
A |
E |
B |
E |
E |
D |
C |
从表1中可以获知,计算节点A的计算能力值最大,计算节点B的I/O能力值最大,计算节点C的图像处理能力值最大,计算节点D的流媒体能力值最大。
这样,在确定与所述影响最大的应用能力值类别对应的应用能力值最强的前N个可用计算节点时,例如:确定计算能力最强的前3个计算节点,就可以从表1中直接查找到计算节点A、B、C。
当然表1中只是举例说明,实际上集群中会有很多个计算节点,应用类型也不限于表1中的4个。
可选地,在上述图1对应的实施例或可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,可以包括:
根据所述影响最大的应用能力值和所述每个计算节点的负载能力参数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点。
本发明实施例中,负载能力参数可以是计算节点目前的负载量,例如:80%,如果确定出计算节点A、B、C的计算能力值对待调整数据块影响最大,但其中计算节点C的负载过重,负载过重可以理解为:一个计算节点的负载量超过70%时,就认为负载过重,当然,具体负载过重的定义可以预先设置,不限定为是70%。这样,当计算节点C的负载过重时,则可以再考虑计算能力值排在第四位的计算节点D,当计算节点D的负载没有过重时,则可以确定出计算能力值最强的前3个可用计算节点分别为A、B和D。
可选地,在上述图1对应的实施例或可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,当所述前N个可用计算节点中包含从未存放过所述待调整数据块的新计算节点,且在确定所述最大的应用能力值时,未考虑所述新计算节点所具有的一种应用能力值,而且所述一种应用能力值满足预置条件时,所述方法还可以包括:
重新确定所述各种应用能力值中,对待调整数据块的处理效率影响最大的应用能力值。
本发明实施例中,当确定的对待调整数据块影响最大的应用能力值为计算能力值,而且计算能力值排在前3个的可用计算节点分别为A、B和D,在该待调整数据块最初备份时,只备份在了计算节点A、B、C上,计算节点D的流媒体能力值最大,所以,最初判断对待调整数据块影响最大的应用能力值时,没有评估流媒体能力值对该待调整数据块的影响。这样,就需要将待调整数据块迁移到计算节点D上,重新评估一下流媒体能力值对待调整数据块的影响是否是最大的。
对于,本发明实施例中的所述新计算节点所具有的一种应用能力值满足预置条件可以为计算节点D在流媒体能力值全局有序节点链表的前半部分。
可选地,在上述图1对应的实施例或可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述将所述待调整数据块备份到确定的所述前N个可用计算节点上之后,所述方法还可以包括:
获取所述待调整数据块被访问次数的表征参数,所述被访问次数的表征参数为所述待调整数据块在预置时间段内被访问的次数;
根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量。
本发明实施例中,被访问次数的表征参数可以为被访问的频率,也可以为被访问的密度,被访问频度可以用预置时间段内被访问的次数来表示,被访问的密度可以用单位时间内被访问的次数来表示。
当一个数据块频繁被访问时,说明对该数据块的需求量较大,可以增加该数据块的备份数量,当一个数据块很久没有被访问时,说明对该数据块的需求很小,可以减少该数据块的备份数量,例如:在初始状态,每个数据块都备份3份,这样,对于需求量大的数据块,就可以增加备份,调整到备份4份或5份,对于需求量少的数据,就可以减少备份,只备份1份或者2份。这样针对需求量大的数据块增加备份数量可以提升数据的可用性,进而提升数据处理响应时间,针对需求量小的数据块减少备份数量,既不会影响数据的可用性与数据的处理响应时间,还可以提高存储空间利用率。
对于监控数据块被访问的频度和密度可以采用优化时间窗技术,设置一个数据块的被访问密度与被访问频度的变化阈值,例如20%,当连续两次获取的被访问密度与被访问频度的变化范围小于阈值,那么,暂时停止时间窗采样,等待时间T之后再次采样,如果变化量仍然不超过阈值,那么等待2T时间之后再次采样,然后是等待4T时间、等待8T时间,以此类推。这样可以有效控制采样开销。
根据统计结果,将可以数据块分为四种类别,分别为Hot类、Normal类、Cooled类和Cold类。其中,Cold类对应的访问频度的预置范围为[0,X),Normal类对应的访问频度的预置范围为[X,Y),Cooled类对应的访问频度的预置范围为[Y,Z),Hot类对应的访问频度的预置范围为[Z,R),其中,R>Z>Y>X>0。
Hot类:
数据访问密度与访问频度都超过阈值的数据,需要增加备份数量来提高数据的可用性以及提升数据处理的响应时间,可以将备份数量由3份增加到4份或5份。
Normal类:
刚创建的数据默认的类别,一般备份数量为3份。
Cooled类:
Hot数据块被访问密度与被访问频度下降后,当前数据块的备份数超过3份,需要减少数据块的备份数到Normal水平。
Cold类:
数据被访问密度与被访问频度都很低的数据,需要减少备份数,提高存储空间利用率。对此类数据,副本数可以为1份或2份。
可选地,在上一个可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量,可以包括:
当所述被访问次数的表征参数满足增加所述待调整数据块的备份数量的条件时,在除出所述前N个可用计算节点之外的剩余计算节点中选择新的备份计算节点,并在所述新的备份计算节点下增加备份,所述新的备份计算节点为所述剩余计算节点中所述影响最大的应用能力值排序在前第一预置数量的可用计算节点。
本发明实施例中,针对被访问密度与被访问频度大的数据,增加数据块备份数量可以提高数据可用性,提升数据处理的响应时间。增加备份数量时,选择计算节点的依据是在除出所述前N个可用计算节点之外的剩余计算节点中选择新的备份计算节点,并在所述新的备份计算节点下增加备份,所述新的备份计算节点为所述剩余计算节点中所述影响最大的应用能力值排序在前第一预置数量的可用计算节点,以保证新增数据的处理效率仍然很高。
例如:当计算能力值对数据块的影响最大,该数据块已经在计算节点A、B、C上备份,如果要将该数据块的备份数量增加到5份,计算节点D和E的计算能力值在所有计算节点的计算能力排序中,是紧排在C之后的,所以当计算节点D和E的负载没有超负荷时,就可以在将数据块备份到计算节点D和计算节点E下。
可选地,在上一个可选实施例的基础上,本发明实施例提供的数据备份的方法的另一实施例中,所述根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量,可以包括:
当所述被访问次数的表征参数满足减少所述待调整数据块的备份数量的条件时,确定所述前N个可用计算节点中所述影响最大的应用能力值最小的第二预置数量的计算节点,并删除所述第二预置数量的计算节点下的所述待调整数据块,所述第二预置数量小于N。
本发明实施例中,例如:当计算能力值对数据块的影响最大,该数据块已经在计算节点A、B、C上备份,如果要将该数据块的备份数量减少到1份,则可以保留计算节点A上的数据块,删除计算节点B和C上的数据块。这样保证保留的数据块具有最高的处理效率。与现有技术中数据块并没有备份到处理该数据块能力最强的计算节点上相比,本发明实施例提供的主节点设备,可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。
为了便于理解,下面以一个具体的应用场景为例,说明本发明实施例中Hadoop集群中数据备份的方法的过程:
以集群中有两个机架为例,分别为机架A和机架B,机架A中有4个计算节点,分别为计算节点A1、计算节点A2、计算节点A3和计算节点A4,机架B中有4个计算节点分别为计算节点B1、计算节点B2、计算节点B3和计算节点B4。
获取上述机架A和机架B中8个计算节点各自的计算能力值、I/O能力值、图像处理能力值和流媒体能力值。
依据各能力值,创建全局有序节点链表,全局有序节点链表可以参阅表2进行理解。
表2:全局有序节点链表
计算能力 |
I/O能力 |
图像处理能力 |
流媒体能力 |
A1 |
A3 |
B2 |
A4 |
B1 |
B3 |
A2 |
B4 |
B3 |
B4 |
A1 |
B3 |
A3 |
A4 |
B1 |
A3 |
B4 |
B1 |
A3 |
B1 |
A4 |
A1 |
B3 |
A1 |
B2 |
B2 |
B4 |
A2 |
A2 |
A2 |
A4 |
B2 |
例如:有4个数据块,这4个数据块分别是数据块1、数据块2、数据块3和数据块4,数据块1受计算能力值影响最大,数据块2受I/O能力值影响最大,数据块3受图像处理能力值影响最大,数据块4受流媒体能力值影像最大,如果要将这4个数据都备份3份,一个机架下备份两份,另一个机架下备份一份的备份方案,而且假设每个计算节点都处于负载均衡状态下,没有超负荷的计算节点,则最优的备份方案可以参阅图2进行理解,数据块1要在机架A上备份两份,机架B上备份一份时,则在计算节点A1、B1和A3上各备份一份数据块1。数据块2要在机架A上备份两份,机架B上备份一份时,则在计算节点A3、B3和A4上各备份一份数据块2。数据块3要在机架A上备份一份,机架B上备份两份时,则在计算节点B2、A2和B1上各备份一份,数据块4要在机架A上备份一份,机架B上备份两份时,则在计算节点A4、B4和B3上各备份一份数据块4。
如果采用时间窗技术,确定出数据块1被频繁访问,数据块2的被访问频率正常,数据块3的被访问频率正常,数据块4的被访问频率很低,则可以将数据块1的备份数量增加到4份,将数据块4的备份数量减少到2块,在增加数据块1时,计算节点B3的计算能力相比与其他没有存储数据块1的计算节点,计算能力最强,可以在机架B的计算节点B3下增加一个数据块1的备份,在减少数据块4时,计算节点A4的流媒体能力比计算节点B4和B3的流媒体能力要弱,所以可以删除计算节点B3下的数据块4。
参阅图3,本发明实施例提供的控制数据备份的设备的一实施例包括:
获取单元201,用于获取每个计算节点所具有的各种应用能力值;
第一确定单元202,用于确定所述获取单元201获取的所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数;
第二确定单元203,用于确定所述每个计算节点中所述第一确定单元202确定的所述影响最大的应用能力值最强的前N个可用计算节点;
调度单元204,用于将所述待调整数据块备份到所述第二确定单元203确定的所述前N个可用计算节点上。
本发明实施例中,获取单元201获取每个计算节点所具有的各种应用能力值,第一确定单元202确定所述获取单元201获取的所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数,第二确定单元203确定所述每个计算节点中所述第一确定单元202确定的所述影响最大的应用能力值最强的前N个可用计算节点,调度单元204将所述待调整数据块备份到所述第二确定单元203确定的所述前N个可用计算节点上。与现有技术中数据块并没有备份到处理该数据块能力最强的计算节点上相比,本发明实施例提供的设备,可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。
可选地,在上述图3对应的实施例的基础上,参阅图4,本发明实施例提供的主节点设备的另一实施例中,所述第一确定单元202包括:
备份子单元2021,用于将需要备份N份的所述待调整数据块预先备份到N个预选择的计算节点上,所述N个预选择的计算节点分别具有所述各种应用能力值中一种最大的应用能力值;
记录子单元2022,用于在所述N个预选择的计算节点分别对所述备份子单元2021备份的所述待调整数据块进行处理时,记录所述N个预选择的计算节点各自对所述待调整数据块的处理效率;
确定子单元2023,用于根据所述记录子单元2022记录的所述N个预选择的计算节点各自对所述待调整数据块的处理效率,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值。
可选地,在上述图4对应的实施例的基础上,本发明实施例提供的主节点设备的另一实施例中,
所述调度单元204,用于将所述待调整数据块,从所述N个预选择的计算节点迁移备份到所述前N个可用计算节点。
可选地,在上述图3或图4对应的实施例的基础上,本发明实施例提供的主节点设备的另一实施例中,
所述获取单元201,用于获取所述每个计算节点的硬件参数,根据预置的所述各种应用能力值与所述硬件参数的对应关系,从所述硬件参数中选择与所述各种应用能力值对应的硬件参数,计算所述各种应用能力值。
可选地,在上述图3对应的实施例的基础上,参阅图5,本发明实施例提供的主节点设备的另一实施例中,所述设备还包括:
建表单元205,用于根据所述获取单元201获取的所述各种应用能力值构建全局有序节点链表,所述全局有序节点链表为按照所述各种应用能力值中每种应用能力值大小顺序排列的计算节点链表;
所述第二确定单元203,用于从所述建表单元205建立的所述全局有序节点链表中所述影响最大的应用能力值下,查找所述影响最大的应用能力值最强的前N个可用计算节点。
可选地,在上述图3-图5对应的任一实施例的基础上,本发明实施例提供的主节点设备的另一实施例中,
所述第二确定单元203,用于根据所述影响最大的应用能力值和所述每个计算节点的负载能力参数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点。
可选地,在上述图3-图5对应的任一实施例的基础上,本发明实施例提供的主节点设备的另一实施例中,当所述前N个可用计算节点中包含从未存放过所述待调整数据块的新计算节点,且在确定所述最大的应用能力值时,未考虑所述新计算节点所具有的一种应用能力值,而且所述一种应用能力值满足预置条件时,
所述第一确定单元202,还用于重新确定所述各种应用能力值中,对待调整数据块的处理效率影响最大的应用能力值。
可选地,在上述图3-图5对应的任一实施例的基础上,本发明实施例提供的主节点设备的另一实施例中,
所述获取单元201,还用于获取所述待调整数据块被访问次数的表征参数,所述被访问次数的表征参数为所述待调整数据块在预置时间段内被访问的次数;
所述第二确定单元203,还用于根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量。
可选地,在上一实施例的基础上,本发明实施例提供的主节点设备的另一实施例中,
所述第二确定单元203,用于当所述被访问次数的表征参数满足增加所述待调整数据块的备份数量的条件时,在除出所述前N个可用计算节点之外的剩余计算节点中选择新的备份计算节点,并在所述新的备份计算节点下增加备份,所述新的备份计算节点为所述剩余计算节点中所述影响最大的应用能力值排序在前第一预置数量的可用计算节点。
所述第二确定单元203,用于当所述被访问次数的表征参数满足减少所述待调整数据块的备份数量的条件时,确定所述前N个可用计算节点中所述影响最大的应用能力值最小的第二预置数量的计算节点,并删除所述第二预置数量的计算节点下的所述待调整数据块,所述第二预置数量小于N。
图6是本发明实施例主节点设备200的结构示意图。主节点设备200可包括输入设备210、输出设备220、处理器230和存储器240。
存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据。存储器240的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器240存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器230通过调用存储器240存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
获取每个计算节点所具有的各种应用能力值;
确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数;
确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点;
将所述待调整数据块备份到确定的所述前N个可用计算节点上。
本发明实施例中,主节点设备200可以将数据块备份到处理该数据块能力最强的计算节点上,从而提高了数据处理的效率。
处理器230控制主节点设备200的操作,处理器230还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据。存储器240的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,网络设备20的各个组件通过总线系统250耦合在一起,其中总线系统250除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统250。
上述本发明实施例揭示的方法可以应用于处理器230中,或者由处理器230实现。处理器230可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器230中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器230可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器240,处理器230读取存储器240中的信息,结合其硬件完成上述方法的步骤。
可选地,处理器230用于将需要备份N份的所述待调整数据块预先备份到N个预选择的计算节点上,所述N个预选择的计算节点分别具有所述各种应用能力值中一种最大的应用能力值,在所述N个预选择的计算节点分别对所述待调整数据块进行处理时,记录所述N个预选择的计算节点各自对所述待调整数据块的处理效率,根据所述N个预选择的计算节点各自对所述待调整数据块的处理效率,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值。
可选地,处理器230用于将所述待调整数据块,从所述N个预选择的计算节点迁移备份到所述前N个可用计算节点。
可选地,处理器230用于获取所述每个计算节点的硬件参数,根据预置的所述各种应用能力值与所述硬件参数的对应关系,从所述硬件参数中选择与所述各种应用能力值对应的硬件参数,计算所述各种应用能力值。
可选地,处理器230用于根据所述各种应用能力值构建全局有序节点链表,所述全局有序节点链表为按照所述各种应用能力值中每种应用能力值大小顺序排列的计算节点链表,从所述全局有序节点链表中所述影响最大的应用能力值下,查找所述影响最大的应用能力值最强的前N个可用计算节点。
可选地,处理器230用于根据所述影响最大的应用能力值和所述每个计算节点的负载能力参数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点。
可选地,处理器230用于当所述前N个可用计算节点中包含从未存放过所述待调整数据块的新计算节点,且在确定所述最大的应用能力值时,未考虑所述新计算节点所具有的一种应用能力值,而且所述一种应用能力值满足预置条件时,重新确定所述各种应用能力值中,对待调整数据块的处理效率影响最大的应用能力值。
可选地,处理器230还用于获取所述待调整数据块被访问次数的表征参数,所述被访问次数的表征参数为所述待调整数据块在预置时间段内被访问的次数,根据所述被访问次数的表征参数,确定增加或减少所述待调整数据块的备份数量。
可选地,处理器230用于当所述被访问次数的表征参数满足增加所述待调整数据块的备份数量的条件时,在除出所述前N个可用计算节点之外的剩余计算节点中选择新的备份计算节点,并在所述新的备份计算节点下增加备份,所述新的备份计算节点为所述剩余计算节点中所述影响最大的应用能力值排序在前第一预置数量的可用计算节点。
可选地,处理器230用于当所述被访问次数的表征参数满足减少所述待调整数据块的备份数量的条件时,确定所述前N个可用计算节点中所述影响最大的应用能力值最小的第二预置数量的计算节点,并删除所述第二预置数量的计算节点下的所述待调整数据块,所述第二预置数量小于N。
参阅图7,本发明实施例提供的Hadoop集群系统的一实施例包括主节点设备200和多个计算节点300,主节点设备200和多个计算节点300通信连接,图中只画出了4个计算节点300,实际上可以有很多个。
所述多个计算节点300用于存储待调整数据块和处理所述待调整数据块;
所述主节点设备200用于获取每个计算节点所具有的各种应用能力值,确定所述各种应用能力值中对待调整数据块的处理效率影响最大的应用能力值,以及所述待调整数据块的备份数量N,所述N为大于1的整数,确定所述每个计算节点中所述影响最大的应用能力值最强的前N个可用计算节点,将所述待调整数据块备份到确定的所述前N个可用计算节点上。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的Hadoop集群中数据备份的方法、设备以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。