基于动态标记优先值的MapReduce数据本地化方法技术

技术编号:12674586 阅读:82 留言:0更新日期:2016-01-07 18:55
本发明专利技术提供了一种基于动态标记优先值的MapReduce数据本地化方法,包括以下步骤:将各计算节点上的本地化数据块初始化标记值为2n,计算各计算节点本地化数据块的数量;按照各计算节点的数据块数量进行升序排序;依次从数据块数量最少的计算节点开始,将每个计算节点上的数据块的后续备份数据块的标记值减去一个确定的数DecS;优先选择标记值最大的数据块进行调度;任务调度后,再次调整每个计算节点的数据块数量,并进行升序排序,排序后进行标记值调整,最终完成数据处理。本发明专利技术通过标记数据块并设置不同优先值,从而提升作业的数据本地化程度,进而提升MapReduce上作业的执行效率和减少作业的带宽占用率。

【技术实现步骤摘要】

本专利技术涉及计算机大规模数据运算,尤其是MapReduce运算领域,特别涉及一种。
技术介绍
MapReduce计算框架作为Hadoop平台的核心组件,Hadoop平台所有计算任务都是在MapReduce上完成的,所以Hadoop平台的计算效率和吞吐量与MapReduce的作业执行效率和吞吐量息息相关。在Hadoop平台,MapReduce分布式计算框架是搭建在以冗余形式存储数据块的分布式文件系统HDFS上,HDFS以数据块的形式存储用户数据并且数据块默认冗余数为3,也就是说一个作业对应的文件大小为100个数据块(在HDFS中,数据块默认大小为64MB)时,在HDFS中存储关于该作业的数据块数目为300。数据本地化是一种在本地获取计算数据的过程,数据本地化程度高,能减少计算节点的计算等待时间,同时也能减少数据拷贝量,从而达到高效利用集群网络带宽的目的。由于存储数据的节点和参加计算的节点是重合的,所以MapReduce可以利用这种冗余形式的数据块来提升分布式计算任务的数据本地化程度。原始的MapReduce任务调度方法在接受计算节点的任务请求时,为了提升计算任务的数据本地化程度,优先选择该计算节点的本地任务,次之是本机架的任务,最后是本数据中心的任务。然而,这种数据本地化方法并不能实现高程度的数据本地化,主要原因有:1) 一个作业的数据块在各计算节点上分布相对不均匀;2)各计算节点的计算性能有差异,并不完全是同构的机器。在原始的调度方法中,MapReduce认为集群中的机器是同构的,且没有考虑数据块分布的不均衡性;3)每个计算节点在选取本地数据块时没有一个优先顺序。数据块有冗余备份,可能导致本地化任务的恶性抢占。
技术实现思路
本专利技术所要解决的技术问题是提供一种,该方法综合考虑数据块的分布状况和计算节点的异构差异性,在调度本地化任务的时候给出一个优先级,解除本地化任务分配中的恶性抢占问题。为解决上述技术问题,本专利技术采用的技术方案是:—种,包括以下步骤;设一个集群中拥有η个计算节点,各计算节点的名称为T1, T2,…,T1,…,Tn,某个在集群上运行的作业拥有m个数据块且各数据块的名称为B1, B2,…,Bx,…,Bni,数据块默认冗余数为3,则Bx有三个存储的数据块B xl、Bx2, Bx3;将各计算节点上的本地化数据块初始化标记值为2n,计算各计算节点本地化数据块的数量,不妨设T1上有本地化数据块CL ?个;按照各计算节点的数据块数量进行升序排序,不妨设一种升序序列为INC1,INC2,…,INCP,…,INCj,…,INCk,…,INCn,其中,位置1从^对应CL ?个数据块,且对应计算节点Ti;依次从INC1对应的计算节点开始,直到INCJt应的计算节点,将每个计算节点上的数据块的后续备份数据块的标记值减去一个确定的数DecS,DecS的值由位置INC,确定,位置11^对应DecS的值η-j+l ;在任务调度过程中,若调度本地化的数据块,则优先选择标记值最大的数据块,若本地没有数据块,则优先选择本机架位置INC数值高的计算节点上标记值高的数据块进行拷贝;每个数据块得到调度后,再次调整每个计算节点的数据块数量,当某个数据块Bxl被调度后,该数据块及其备份数据块Bx2、Bx3所在的三个计算节点上的数据块数量都减去1,之后进行升序排序,排序后再进行标记值调整。设数据块Bx2对应的计算节点为T s,在数据块Bx2调度之前,计算节点T s上的数据块数量为CL Ts,对应的位置为INCk,调度之后,Ts对应位置为INCP,4种调整分别为:第一、计算节点TsI的本地数据块在位置INC p到INCk:对应的计算节点的备份数据块的标记值都减去n-p+1 ;第二、从位置INCp到INCk i对应的计算节点上的数据块在计算节点TsI的标记值都加n-r+l (r e ),计算节点T 1^是与计算节点TJ的数据块有相同数据块的计算节点;第三、位置INC p到INCk i对应的计算节点上的数据块的后续备份数据块的标记值都加I ;第四、计算节点Ts本地其他数据块对应的在位置INCk之后的计算节点上的数据块的标记值需要再次加p-k,p-k = (n-k+1)-(n-p+1);标记值调整后继续下一次任务调度,任务调度后继续下一次标记值调整,直到所有计算任务全部完成。与现有技术相比,本专利技术的有益效果是:通过标记数据块并设置不同优先值,从而提升作业的数据本地化程度,进而提升MapReduce的作业执行效率和减少作业的带宽占用率,最终提升Hadoop集群的整体吞吐率。【具体实施方式】本专利技术的目的在于通过提升数据本地化程度来进一步提升Hadoop平台的吞吐率以及MapReduce作业的执行效率。通过动态设定标记值来改变本地化任务的调度优先级从而提升数据本地化程度。提升数据本地化程度,减少需要远程传输的数据块数量,就可减少了计算节点的计算等待时间。另外,由于减少了非本地化任务,一个作业网络带宽的使用量也减少了,从而使得MapReduce集群的并发度可以提升,进而提升Hadoop平台的整体吞吐率。本专利技术提出的基于动态标记优先值的数据本地化调度方法在同构或异构集群上均可工作。的整体思路是,通过对各计算节点的本地化数据块进行动态升序排序,在初始阶段,排在前面的计算节点拥有相对少的本地化数据块,一段时间后,排在前面的将会是计算速度和本地化数据块不成正相关的计算节点。本专利技术方法尽最大可能不破坏排在相对靠前的计算节点的本地化数据块,通过动态地给各节点的数据块打标记值的方式来决定各计算节点的本地化任务调度优先权,最终实现提升数据本地化的目的。—种,包括以下步骤;步骤一、设一个集群中拥有η个计算节点,各计算节点的名称为TpT2,…,Ti,…,Tn,某个在集群上运行的作业拥有m个数据块且各数据块的名称为B1,B2,…,Bx,…,Bni,数据块默认冗余数为3,则Bx有三个存储的数据块B xl、Bx2, Bx3;步骤二、将各计算节点上的本地化数据块初始化标记值为2n,计算各计算节点本地化数据块的数量,不妨设T1上有本地化数据块CL ?个;步骤三、按照各计算节点的数据块数量进行升序排序,不妨设一种升序序列为INC1, INC2,…,INCP,…,INCj,…,INCk,…,INCn,其中,位置1从^对应CL ?个数据块,且对应计算节点Ti;步骤四、依次从INC1对应的计算节点开始,直到INC?对应的计算节点,将每个计算节点上的数据块的后续备份数据块的标记值减去一个确定的数DeCS,DeCS的值由位置INC,确定,位置1从^对应DecS的值η-j+l ;在集群各计算节点都是同构的情况下,爪匕对应的计算节点是最不可能存在非本地化任务的计算节点,因为该计算节点上的数据块最多,反之,INC1对应的计算节点上的本地化数据块最少。在原始的调度方法中,如果INC1对应的计算节点不能每次都先得到调度,取得本地数据块进行处理,其本地数据块可能被其他计算节点所抢占(恶性抢占)。从数据块的升序序列可以看出,越往后的INC对应的计算节点在本地化出现的概率递增,非本地化出现的概率递减。为了保护数据块数量少的计算节点的数据块不被抢占,依次从INCJi应的节点开始,将该节本文档来自技高网
...

【技术保护点】
一种基于动态标记优先值的MapReduce数据本地化方法,其特征在于:包括以下步骤;设一个集群中拥有n个计算节点,各计算节点的名称为T1,T2,…,Ti,…,Tn,某个在集群上运行的作业拥有m个数据块且各数据块的名称为B1,B2,…,Bx,…,Bm,数据块默认冗余数为3,则Bx有三个存储的数据块Bx1、Bx2、Bx3;将各计算节点上的本地化数据块初始化标记值为2n,计算各计算节点本地化数据块的数量,不妨设Ti上有本地化数据块CLTi个;按照各计算节点的数据块数量进行升序排序,不妨设一种升序序列为INC1,INC2,…,INCp,…,INCj,…,INCk,…,INCn,其中,位置INCj对应CLTi个数据块,且对应计算节点Ti;依次从INC1对应的计算节点开始,直到INCn对应的计算节点,将每个计算节点上的数据块的后续备份数据块的标记值减去一个确定的数DecS,DecS的值由位置INCj确定,位置INCj对应DecS的值n‑j+1;在任务调度过程中,若调度本地化的数据块,则优先选择标记值最大的数据块,若本地没有数据块,则优先选择本机架位置INC数值高的计算节点上标记值高的数据块进行拷贝;每个数据块得到调度后,再次调整每个计算节点的数据块数量,当某个数据块Bx1被调度后,该数据块及其备份数据块Bx2、Bx3所在的三个计算节点上的数据块数量都减去1,之后进行升序排序,排序后再进行标记值调整;设数据块Bx2对应的计算节点为Ts,在调度数据块Bx2之前,计算节点Ts上的数据块数量为CLTs,对应的位置为INCk,调度之后,Ts对应位置为INCp,4种调整分别为:第一、计算节点Ts上的本地数据块在位置INCp到INCk‑1对应的计算节点的备份数据块的标记值都减去n‑p+1;第二、位置INCp到INCk‑1对应的计算节点上的数据块在计算节点Ts上的标记值都加n‑r+1(r∈[p,k‑1]),计算节点Tr是与计算节点Ts上的数据块有相同数据块的计算节点;第三、从位置INCp到INCk‑1对应的计算节点上的数据块的后续备份数据块的标记值都加1;第四、计算节点Ts本地其他数据块对应的在INCk位置之后的计算节点上的数据块的标记值需要再次加上p‑k,p‑k=(n‑k+1)‑(n‑p+1);标记值调整后继续下一次任务调度,任务调度后继续下一次标记值调整,直到所有计算任务全部完成。...

【技术特征摘要】

【专利技术属性】
技术研发人员:杨玉琴陈麟
申请(专利权)人:成都信息工程大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1