基于键值分布的跨数据中心大数据处理的制作方法

文档序号:9826152阅读:191来源:国知局
基于键值分布的跨数据中心大数据处理的制作方法
【技术领域】
[0001]本发明涉及云计算和大数据技术领域,尤其涉及一种基于键值分布的跨数据中心大数据处理系统和方法。
【背景技术】
[0002]分布式云计算由多个跨地域分布的数据中心组成。数据中心通常由专用高速链路或者昂贵的长途链路连接。分布式云计算因为提供了充足的计算和存储能力,而越来越被广泛地用来部署多种业务,特别是像社会服务,天文学等这类数据密集型的应用。
[0003]因为这些数据数量巨大,而且来自于不同地域,将这些数据汇集到一起并存储在某一个数据中心不总是现实的。更不用说在某些国家,比如欧盟,数据安全法要求数据必须在本国存储。一般的,数据可以被存储在靠近数据产生的地方,以便于经常性的本地数据访问。比如,美国人口统计数据是存储在各州的。巨大的遥感数据是存储在跨地域的数据中心的。虽然这些数据是分区域管理的,它们也可能为了一个共同的目标而需要被协同分析。如果处理这些分布式的数据已经吸引了学者和业界(比如MapR,其中一个主要的Hadoop供应商,宣布其最近的版本将支持跨数据中心的数据表备份。这意味着将来Hadoop框架并不总是要局限在一个数据中心内部)的广泛关注。
[0004]Hadoop是进行大数据分析的公认平台,是MapReduce的开源实现,但目前Hadoop的版本并不支持跨数据中心的大数据分析和处理。研究跨数据中心的大数据处理技术已经越来越迫切。为了了解跨数据中心的大数据分析,必须要先了解MapReduce的处理机制。
[0005]一般的,MapReduce依赖于Hadoop分布式文件系统(HDFS)。如附图1左半部份所示,HDFS中,分布在扁平化网络上的数据被划分成等量的数据块(缺省值为64M)。每一个数据分区(split)通常包含一个数据块,也可包含多个数据块。一个数据分区按照一个{key-value}对的方式(〈key I,val 1>)由一个mapper处理JapReduce包含两个阶段:map阶段和reduce阶段。mapper的数目是由MapReduce的job的输入,也即数据分区个数来决定的,因此通常和数据块的个数相同。reducer的数目需要配置。一般最优配置建议是mapper数目的2/Sc3Mapper和reducer均在独立的VM中运行。Mapper遵从数据本地化原则,即,优选和输入的数据分区在一起,以减少数据拷贝并加速job完成。如果做不到这一点(比如数据分区所在的PM的计算资源不够),同机框的计算节点将会优先被选择,如果还不成功,则尝试其它机框的节点。作为中间数据的map输m,list(〈key2,val2>),将会被存放在本地磁盘上。
[0006]G-hadoop和G-MR是MapReduce的两个推广,属于跨数据中心的MapReduce。二者目的都是进行跨数据中心的大数据处理。虽然它们在某些方面不同,但如附图1右半部分所示,它们在结构上是大体相似的。和一个数据中心内的传统MapReduce相比,引入了一个Higher JobTracker来进行数据整合,并在所有涉及的DC范围内决策mapper和reducer的位置。在每个DC内的JobTracker负责分配到本DC的task的执行。一般的,map的输入都比它的输出大,移动map输入不是理想的方式。Mapper仍然被按照数据本地化原则部署在每个DC。每个DC的map阶段和单个DC的情景完全相同。中间数据被本地存储在Gfarm(G-hadoop)或者HDFS(G-MR)。既然reducer将处理几乎所有mapper的输出,这就必须进行跨数据中心数据拷贝。一旦一个reducer的位置确定,JobTracker将用一个专门部件CopyManager,将数据拷贝过来以便reduce。被拷贝来的数据或者被存储在SAN(G-hadoop),或者是DHFS(G-MR)上。因为SAN/S3和节点集群是独立的,所以无论reduer在那个节点上,DC内数据拷贝占用的网络资源是相同的。如果map输出被存储在HDFS,跨物理节点的数据分布就和Hadoop类似了,虽然Hadoop将map输出存储在本地磁盘。现在,原来的Hadoop机制或者其它高级的方式可以被用来进行reducer的部署。总而言之,跨数据中心的MapReduce具有很多的不同,主要集中在reducer位置的决策,中间数据的拷贝和存储。
[0007]本质上,G-Hadoop采用随机机制来部署reducer,不能适应中间数据和reducer的分布。在跨数据中心的大数据处理中,因为数据中心间的大数据拷贝会导致大量的成本,因此这种随机部署reducer的方式会导致成本剧增。
[0008]G-MR通过定义一个单向有向图来描述数据所在位置和传输路径。每个DC上的所有数据都需要被划分成大小相等的分块。这个图的节点是map和reduce阶段前的不同DC的所有分块的组合,边是从一个节点到另一个节点的传输路径。节点的权重是为了维持本节点需要的成本,而边的权重是拷贝数据的成本。最短路算法被用来寻找数据传输的最小成本路径。算法要求划分的块的大小要事先指定,本图具有m的η次方个节点,其中m是所有DC的数据分块的总数,η是数据中心的个数,因此路径的个数更大。如果允许数据被任意划分,则将会存在节点和路径的个数过多的灾难。为了减小图的规模,作者做了几个约定,比如,划分必须是等量的,数据传输只有在DC的个数可能被减少时才允许,两个数据中心间交换数据是不允许的。但这些约定导致了不利后果,影响了解的最优性。除了确定每个划分的数据量的困难性之外,等量划分和不允许交换的约定将可能把某个reducer需要处理的数据移动到不同的DC上去。这样,作者不得不引入了直接reducer(straightforward reducer)。直接reducer只按照原样输出它收到的中间数据。最后,在所有输出被拷贝到同一个DC上后,又不得不引入一个Aggregat1nManager来整合直接reducer的输出。而且,这种机制建立在最初的map输入都是相关联的假设上。可惜,事情不总是这样。直接reducer和直接mapper的引入也导致了需要启用更多的VM。

【发明内容】

[0009]为了解决现有技术中的问题,本发明提出了一种基于键值分布的跨数据中心大数据处理系统和方法,本发明通过以下技术方案实现:
[0010]一种基于键值分布的跨数据中心大数据处理系统,所述系统包括Higher JobTracker 模块、CopyerManager 模块、Copyer 模块、JobTracker 模块、TaskTracker模块和ResourceManager模块;其中,所述ResourceManager模块,用于收集DC相关信息以及key 的分布信息;所述 Higher JobTracker 模块、CopyerManager 模块和 ResourceManager 模块都与DC网络相对应;所述Copyer模块与每个DC相对应;所述JobTracker模块和TaskTracker模块的功能和传统Hadoop中相应模块的功能完全相同;系统的工作流程为:
[0011]工作首先被提交到所述HigherJobTracker模块,如果发现工作需要多个DC的数据作为输入,贝1JHigher JobTracker模块要求相关DC的JobTrackers模块来对每个DC的数据进行抽样;在一小部分数据被map后,所述Higher JobTracker模块就能对每个DC的输出进行抽样,从而得到近似的key分布,以及估算每个reducer分配到的数据量;reducer的配置被估计以便和它需要处理的数据量相称,以免有的reduce任务拖延过长而增加整个job的时延;这个结果被送到ResourceManager模块;本地数据的map操作将会继续;同时,调用GA算法,利用ResourceManager模块中存储的信息,GA算法为每个reducer寻找目标DC;得到reducer部署方案后,HigherJobTracker模块开始让CopyManager模块将map输出拷贝到目标DC,其中,具体的拷贝工作由每个目标DC内的Copyer模块完成。
[00?2]作为本发明的进一步改进,工作首先被提交到所述Higher JobTracker模块,如果发现工作只需要在一个DC上处理数据,贝IjHigher JobTracker模块询问相应的JobTracker模块,然后TaskTracker模块像传统的Hadoop—样完成工作;被占用和被释放的资源将会被报告给 ResourceManager 模块。
[0013]作为本发明的进一步改进,所述Higher JobTracker模块、CopyerManager模块和ResourceManager模块都与DC网络相对应;所述Copyer模块与每个DC相对应;所述JobTracker模块和TaskTracker模块的功能和传统Hadoop中相应模块的功能完全相同。
[00? 4] 作为本发明的进一步改进,所述GA算法为TLGGA算法,所述TLGGA算法对问题进行编码后,应用交叉、变异算子到已编码的个体,进行局部优化以及更新初始种群C,直到停止条件满足,然后对结果进行解码,得到问题的解;其中,所述停止条件为获取问题的解。
[0015]作为本发明的进一步改进,生成具有良好基因的初始种群C具体为:LPC、LNC和LDT各被调用η次,以产生3n个初始可行解构成初始种群C;其中,LPC为最少电力成本VM部署算法,LNC为最少节点成本VM部署算法,LDT为最少数据传输成本VM部署算法。
[0016]作为本发明的进一步改进,所述最少电力成本VM部署算法为:按照电价对存储初始输入数据的K个候选DC进行排序,对还没有部署的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1