一种基于分布式文件系统的数据块分配方法

文档序号:8512593阅读:205来源:国知局
一种基于分布式文件系统的数据块分配方法
【技术领域】
[0001] 本发明是基于分布式文件系统,以结点的网络距离和负载均衡为代价把数据块分 配到数据仓库的分配方法。
【背景技术】
[0002] 由于Hadoop环境下分布式文件系统中的数据不支持类似于DBMS的分析功能,因 此,需要将HDFS中的数据迀移到支持类似于SQL的分布式数据仓库中。Yu Xu等人提出了 基于Edmonds-Karp的数据块分配方案但是该算法对于未分配的数据块只是随机的将其分 配到的结点中,未考虑结点之间的网络距离和负载均衡等因素,而且,运用Edmonds-Karp 方法求解网络流的最大流时效率比较低。

【发明内容】

[0003] 本发明要解决的技术问题是:减少被迀移到远程MySQL结点的HDFS数据块个数, 同时以最小的代价将HDFS数据块均匀地分配到MySQL结点上。
[0004] 为了解决上述技术问题,本发明的技术方案是提供了 一种基于分布式文件系统的 数据块分配方法,其特征在于,包括以下步骤:
[0005] 步骤1、根据分配问题构造数据块的初始分配图G ;
[0006] 步骤2、初始化任意两个结点之间的网络距离,其中,第i个数据块Bi和第j个 MySQL结点Mj之间的网络距离d(i,j)为:
[0007]
【主权项】
1. 一种基于分布式文件系统的数据块分配方法,其特征在于,包括以下步骤: 步骤1、根据分配问题构造数据块的初始分配图G ; 步骤2、初始化任意两个结点之间的网络距离,其中,第i个数据块Bi和第j个MySQL 结点Mj之间的网络距离d(i,j)为:
步骤3、基于步骤2得到的网络距离根据最短增广路算法求解初始分配图G的最大流; 步骤4、根据步骤3得到的最大流,判断是否存在未分配的数据块,如果存在,则取出所 有未分配的数据块,组成集合UnBlocks,然后跳转到步骤5,否则,跳转到步骤6 ; 步骤5、如果存在数据块个数小于a的MySQL结点,则取出这些结点,称作结点集合M, 否则,取出数据块个数等于a的MySQL结点,同样称作结点集合M,从集合UnBlocks中随机 取出一个数据块,称作数据块UB,选择一个与数据块UB所在结点的网络代价最小的MySQL 结点,称作MySQL结点MinM,然后将数据块UB分配给MySQL结点MinM,最后从结点集合M 中删除MySQL结点MinM,从集合UnBlocks中删除数据块UB,跳转到步骤4,其中: 第i个数据块Bi和第j个MySQL结点Mj之间的网络代价cost (i,j)为: cost (i,j) = w*d(i,j) +(I-W) load (j),式中,w 为参数,load (j)为第 j 个 MySQL 结点 Mj的负载能力; 步骤6、如果存在数据块个数小于a的MySQL结点,则取出这些结点,称作结点集合 M1,然后从结点集合Ml中随机取出一个结点,称作结点RM,接下来,从数据块个数为a+Ι的 MySQL结点中取出一个与结点RM的网络代价最小的数据块,称为数据块MinB,最后将数据 块MinB重新分配给结点RM,重复步骤6,否则算法终止。
2. 如权利要求1所述的一种基于分布式文件系统的数据块分配方法,其特征在于,所 述第j个MySQL结点Mj的负载能力load (j)为第j个MySQL结点Mj的当前数据块的个数。
【专利摘要】本发明要解决的技术问题是:减少被迁移到远程MySQL结点的HDFS数据块个数,同时以最小的代价将HDFS数据块均匀地分配到MySQL结点上。为了解决上述技术问题,本发明的技术方案是提供了一种基于分布式文件系统的数据块分配方法。本发明在满足数据块均匀分配的约束条件下,使得被分配到远程结点的HDFS数据块个数尽可能的少,同时使得在最短的时间内传输的HDFS数据块个数最多,在时间复杂度上更低,且性能更高,分配方案所花费的网络代价更低,更合理,具有较高的应用价值。
【IPC分类】G06F17-30
【公开号】CN104834741
【申请号】CN201510259620
【发明人】李继云, 孙莉, 张娇艳, 何刚, 乐嘉锦, 施巍, 吕俊涛
【申请人】东华大学
【公开日】2015年8月12日
【申请日】2015年5月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1