1.一种Hadoop分布式文件系统的存储方法,其特征在于,包括:
元数据节点接收数据节点反馈的节点状态信息,根据各个数据节点的节点状态信息计算数据节点的健康状态,获得各个数据节点的健康性评估值;
根据宕机次数以及每次宕机恢复后的存活时间,计算各个数据节点的可靠性,获得各个数据节点的可靠性评估值,其中数据节点的可靠性评估值随宕机次数的增加而降低,且随所述存活时间的增加而增加;
按照健康性评估值的优劣的先后顺序,选择出排序靠前的第一预设数量的第一组数据节点;按照可靠性评估值的高低顺序,选择出排序靠前的第二预设数量的第二组数据节点;以及,根据预设存储策略选择出第三预设数量的第三组数据节点;
根据第一组数据节点、第二组数据节点以及第三组数据节点,筛选出用于当前数据存储的N个目标数据节点,其中,所述N个目标数据节点是根据数据节点在第一组数据节点、第二组数据节点以及第三组数据节点中出现次数的高低排序,选择出的前N个数据节点。
2.如权利要求1所述的方法,其特征在于,所述根据各个数据节点的节点状态信息计算数据节点的健康状态,获得各个数据节点的健康性评估值,包括:
针对每个数据节点,计算该数据节点的节点状态信息与对应权值的乘积的和值,得到该数据节点的健康性评估值。
3.如权利要求2所述的方法,其特征在于,所述各个数据节点的节点状态信息至少包括以下信息中的两种:磁盘容量、磁盘剩余量、磁盘IO性能、内存大小、空闲内存、CPU空闲率、网络性能以及空闲带宽。
4.如权利要求1所述的方法,其特征在于,所述根据宕机次数以及每次宕机恢复后的存活时间,计算各个数据节点的可靠性,包括:
根据数据节点每次宕机恢复后的存活时间,数据节点初次加入系统的时间,系统当前时间SystemTime以及第i个数据节点从最初加入系统至当前时间共发生的宕机事件次数,根据以下公式计算出各个数据节点i的可靠性:
其中:k(i)表示第i个数据节点从最初加入系统至当前时间共发生的宕机事件次数,j表示第j次宕机事件,AliveTime(j)表示数据节点第j次宕机恢复后的存活时间,EnterTime(i)表示第i个数据节点初次加入系统的时间,A表示存活时间的权重,(1—A)表示宕机次数的权重。
5.如权利要求1所述的方法,其特征在于,所述根据第一组数据节点、第二组数据节点以及第三组数据节点,筛选出用于当前数据存储的N个目标数据节点,包括:
计算第一组数据节点、第二组数据节点和第三组数据节点的交集得到第一交集结果,当所述第一交集结果中的数据节点的个数大于等于预设值N时,选择N个数据节点作为所述目标数据节点进行数据存储;
当所述第一交集结果中的数据节点的个数小于N时,计算第一组数据节点与第二组数据节点的交集得到第二交集结果,计算所述第一交集结果与所述第二交集结果的并集,得到第一并集结果,当所述第一并集结果中的数据节点的个数大于等于N时,选择N个数据节点作为所述目标数据节点进行数据存储;
当所述第一并集结果中的数据节点的个数小于N时,计算第一组数据节点与第三组数据节点的交集得到第三交集结果;计算所述第一并集结果和所述第三交集结果的并集得到第二并集结果,当所述第二并集结果中的数据节点的个数大于等于N时,选择N个数据节点作为所述目标数据节点进行数据存储;
当所述第二并集结果中的数据节点的个数小于N时,计算第二组数据节点与第三组数据节点的交集得到第四交集结果;计算所述第二并集结果与所述第四交集结果的并集得到第三并集结果,当所述第三并集结果中的数据节点的个数大于等于N时,选择N个数据节点作为所述目标数据节点进行数据存储;
当所述第三并集结果中的数据节点的个数小于N时,则在增加所述第一预设数量、第二预设数量、第三预设数量后,返回所述按照健康性评估值的优劣的先后顺序,选择出排序靠前的第一预设数量的第一组数据节点;按照可靠 性评估值的高低顺序,选择出排序靠前的第二预设数量的第二组数据节点;以及,根据预设存储策略选择出第三预设数量的第三组数据节点的步骤。
6.一种Hadoop分布式文件系统的存储装置,其特征在于,包括:
处理模块,用于接收数据节点反馈的节点状态信息,根据各个数据节点的节点状态信息计算数据节点的健康状态,获得各个数据节点的健康性评估值;
计算模块,用于根据宕机次数以及每次宕机恢复后的存活时间,计算各个数据节点的可靠性,获得各个数据节点的可靠性评估值,其中数据节点的可靠性评估值随宕机次数的增加而降低,且随所述存活时间的增加而增加;
第一选择模块,用于按照健康性评估值的优劣的先后顺序,选择出排序靠前的第一预设数量的第一组数据节点;按照可靠性评估值的高低顺序,选择出排序靠前的第二预设数量的第二组数据节点;以及,根据预设存储策略选择出第三预设数量的第三组数据节点;
第二选择模块,用于根据第一组数据节点、第二组数据节点以及第三组数据节点,筛选出用于当前数据存储的N个目标数据节点,其中,所述N个目标数据节点是根据数据节点在第一组数据节点、第二组数据节点以及第三组数据节点中出现次数的高低排序,选择出的前N个数据节点。
7.如权利要求6所述的装置,其特征在于,所述处理模块进一步用于
针对每个数据节点,计算该数据节点的节点状态信息与对应权值的乘积的和值,得到该数据节点的健康性评估值。
8.如权利要求7所述的装置,其特征在于,所述处理模块中各个数据节点的节点状态信息至少包括以下信息中的两种:磁盘容量、磁盘剩余量、磁盘IO性能、内存大小、空闲内存、CPU空闲率、网络性能以及空闲带宽。
9.如权利要求6所述的装置,其特征在于,所述计算模块进一步用于
根据数据节点每次宕机恢复后的存活时间,数据节点初次加入系统的时间,系统当前时间SystemTime以及第i个数据节点从最初加入系统至当前时间共发生的宕机事件次数,根据以下公式计算出各个数据节点i的可靠性:
其中:k(i)表示第i个数据节点从最初加入系统至当前时间共发生的宕机事件次数,j表示第j次宕机事件,AliveTime(j)表示数据节点第j次宕机恢复后的存活时间,EnterTime(i)表示第i个数据节点初次加入系统的时间,A表示存活时间的权重,(1—A)表示宕机次数的权重。
10.如权利要求6所述的装置,其特征在于,所述第二选择模块包括:
第一子单元,用于计算第一组数据节点、第二组数据节点和第三组数据节点的交集得到第一交集结果,当所述第一交集结果中的数据节点的个数大于等于预设值N时,选择N个数据节点作为所述目标数据节点进行数据存储;
第二子单元,用于当所述第一交集结果中的数据节点的个数小于N时,计算第一组数据节点与第二组数据节点的交集得到第二交集结果,计算所述第一交集结果与所述第二交集结果的并集,得到第一并集结果,当所述第一并集结果中的数据节点的个数大于等于N时,选择N个数据节点作为所述目标数据节点进行数据存储;
第三子单元,用于当所述第一并集结果中的数据节点的个数小于N时,计算第一组数据节点与第三组数据节点的交集得到第三交集结果;计算所述第一并集结果和所述第三交集结果的并集得到第二并集结果,当所述第二并集结果中的数据节点的个数大于等于N时,选择N个数据节点作为所述目标数据节点进行数据存储;
第四子单元,用于当所述第二并集结果中的数据节点的个数小于N时,计算第二组数据节点与第三组数据节点的交集得到第四交集结果;计算所述第二并集结果与所述第四交集结果的并集得到第三并集结果,当所述第三并集结果中的数据节点的个数大于等于N时,选择N个数据节点作为所述目标数据节点进行数据存储;
第五子单元,用于当所述第三并集结果中的数据节点的个数小于N时,则在增加所述第一预设数量、第二预设数量、第三预设数量后,触发所述第一选择模块按照健康性评估值的优劣的先后顺序,选择出排序靠前的第一预设数量的第一组数据节点;按照可靠性评估值的高低顺序,选择出排序靠前的第二预设数量的第二组数据节点;以及,根据预设存储策略选择出第三预设数量的第三组数据节点。