[发明专利]一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法有效
申请号: | 201510335305.2 | 申请日: | 2015-06-16 |
公开(公告)号: | CN104951372B | 公开(公告)日: | 2018-07-31 |
发明(设计)人: | 梁毅;张辰;陈翔;詹静 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F12/02 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 沈波 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法,分配方法分为五个步骤,初始化、任务内存资源使用预测、任务内存资源释放、任务内存资源追加和回溯。本方法针对Map任务和Reduce任务在运行过程中内存资源使用量具有明显波动性的特征,根据Map任务和Reduce任务运行过程中的内存使用量历史记录,采用线性回归和t检验法,统计任务内存使用规律,预测任务后续运行中需要使用的内存量,并根据任务内存使用预测量,动态追加或减少正在运行的Map任务和Reduce任务的内存分配量,从而有效提高Map/Reduce平台内存资源的使用效率,提升Map/Reduce作业的执行效率。 | ||
搜索关键词: | 一种 基于 预测 map reduce 数据处理 平台 内存 资源 动态分配 方法 | ||
【主权项】:
1.一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法,内存资源动态分配方法分为五个步骤:初始化、任务内存资源使用预测、任务内存资源释放、任务内存资源追加和回溯;在本方法中,有五个基本参数:预测函数拟合次数阈值Cmax、任务内存资源追加判断阈值Ua、任务内存资源释放判断阈值Ur、内存追加量计算时间步长τ、任务抢占优先级权值比例θ;Cmax一般取值在3~5之间,Ua取值在0.1~0.5之间,Ur取值在0.5~1之间,τ取值在5~10秒,θ取值在0~1之间;其特征在于:所述方法在计算机上按以下步骤实现,(1)初始化:从Map/Reduce平台既有资源及作业管理组件采集运行任务tij内存动态分配所需的初始化信息,包括任务当前内存分配量RCij、任务开始运行时刻c_iij和任务的内存资源使用量历史记录集合RUij;其中,1≤i≤m,1≤j≤n,i表示任务所属Map/Reduce作业编号,j表示任务在作业内的任务编号;(2)建立任务tij的内存资源使用量预测函数;2.1)设置任务tij的内存资源使用预测量是关于时间的函数,预测函数形如qij(t)=logaij(t+1)+cij,其中,aij与cij是待估算的参数;2.2)令平台中运行任务tij的内存资源使用量历史记录集合RUij表示为RUij={rl|rl=(tl,ml),tl≥tl‑1,ml≥0},其中,tl为第l个记录时刻,ml为tl记录时刻任务tij的内存使用量;设置RUij为预测样本;2.3)令x=ln(t+1),y=qij(t),将任务tij的内存资源需求预测函数变换为y=bijx+cij,待估算的参数变换为bij和cij;令Cij为函数拟合失败的次数,Cij←0;2.4)采用线性回归方法对函数y=bijx+cij进行拟合,其中bij和cij即为回归系数;2.4.1)对于任务tij的内存资源使用量历史记录集RUij中的每一个记录rl,计算一个变换后的记录rl′:(xl,yl),xl=ln(tl+1),yl=ml;2.4.2)利用公式(1)‑(6),计算回归系数bij和cij的估计值和其中,nij表示RUij中当前内存资源使用记录的个数;由此得出经验回归方程2.5)利用t检验法,对回归方程进行显著性检验;令检验是否满足;其中,是自由度为nij‑2的t分布函数α/2分位值,α是显著性水平;2.6)若检验满足,则函数拟合成功,执行步骤2.10);否则,执行步骤2.7);2.7)Cij←Cij+1,若Cij>Cmax,则拟合失败,执行步骤2.9);否则,执行步骤2.8);其中,Cmax为预测函数拟合次数阈值;2.8)修正预测样本;对RUij中所有内存资源使用记录rl=(tl,ml),rl∈Riij,若满足rl‑1=(tl‑1,ml‑1),rl‑1∈RUij,ml‑ml‑1<0,则设置RUij←RUij‑{rl},执行步骤2.4;2.9)标记任务tij内存资源使用量预测函数构建失败,执行步骤(3);2.10)标记任务tij内存资源使用量预测函数构建成功,将任务tij的内存资源需求预测函数qij(t)=logaij(t+1)+cij中的待估计参数设置为(3)计算任务tij的内存资源追加量RAij和释放量RDij;令当前时刻为c_cij,任务tij当前内存使用量为RNij;3.1)初始化RAij=0,RDij=0;3.2)估算任务tij的完成时刻c_fij;令任务tij处理的进度为pij,根据公式(7)估算任务tij的完成时刻c_fij:c_fij=c_iij+(c_cij‑c _iij)/pij (7)3.3)判断任务tij是否需要追加内存资源;若则执行步骤3.7);否则,执行步骤3.4);其中,Ua为内存资源追加判断阈值;3.4)根据步骤(2),判断任务tij的预测函数是否构建成功,若是,则执行步骤3.5),否则,执行步骤3.6);3.5)根据公式(8)计算RAij,执行步骤3.8);其中,τ为内存追加量计算时间步长;3.6)根据公式(9)计算RAij,执行步骤3.8);RAij=(RCij‑RNij)×1.5 (9)3.7)设置RAij=0;3.8)判断任务tij是否需要释放内存资源;若则执行步骤3.9);否则,执行步骤3.12);其中,Ur为内存释放判断阈值;3.9)根据步骤(2),判断任务tij的预测函数是否构建成功,若是,则执行步骤3.10),否则,执行步骤3.11);3.10)令RMij=qij(c_fij‑c_iij),根据公式(10)计算RDij,执行步骤(4);3.11)根据公式(11)计算RDij,执行步骤(4);3.12)设置RDij=0;(4)任务tij内存资源释放;令tij运行所在节点服务器为Nk,执行RCij←RCij‑RDij,Rk_free←Rk_free+RDij,其中,Rk_free为节点Nk的空闲内存资源量;(5)任务tij内存资源追加;令任务tij运行所在节点服务器为Nk,Rk_free为节点Nk的空闲内存资源量;5.1)根据步骤(4),判断是否满足RAij≤Rk_free,若是,则执行Rk_free←Rk_free‑RAij,并转至步骤5.9);否则,执行步骤5.2);5.2)令节点服务器Nk上所有正在运行的任务组成集合TR,对TR中的每一个任务tuv,按照公式(12)计算该任务的抢占优先级Auv,Auv=θ×puv+(1‑θ)×fu,0≤θ≤1 (12)其中,puv是任务tuv的运行进度,fu是任务tuv所属作业Ju中已完成任务数占总任务数的比例,θ是权值比例;5.3)选取TR中所有抢占优先级高于任务tij的任务组成集合TR′;5.4)令TP为节点服务器Nk上需要抢占其内存资源的任务集合,设置初始设置内存资源抢占总量Pr_Rk=0;5.5)判断是否满足RAij>Rk_free+Pr_Rk且若是,则执行步骤5.6);否则,执行步骤5.7);5.6)按照任务抢占优先级从高到低的顺序从TR′中选取任务,不妨将所选取任务表示为t′uv,任务t′uv的当前内存分配量表示为RC′uv;对于TR′中每个任务t′uv,设置Pr_Rk←Pr_Rk+RC′uv,TR′←TR′‑{t′uv},TP←TP∪{t′uv};执行步骤5.5);5.7)判断是否满足RAij≤Rk_free+Pr_Rk,若是,则执行Rk_free←Rk_free+Pr_Rk‑RAij,并执行步骤5.8);否则,执行步骤5.10);5.8)对任务集合TP中的每一个任务执行内存资源抢占操作,即中止该任务的运行进程,将任务重新标记为待调度任务;5.9)标记任务tij内存资源追加成功,设置任务tij的当前内存资源分配量RCij←RCij+RAij,转至步骤(6);5.10)标记任务tij内存资源追加失败;(6)回溯:一个内存资源动态分配周期间隔t后,判断任务tij是否结束,是则转至步骤(7),否则转到步骤(1);其中,内存资源动态分配周期间隔t是指相邻两次任务内存资源动态分配间,从第一次内存分配结束到第二次内存分配开始的间隔时长;(7)结束:中止对任务tij的内存资源重分配功能。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510335305.2/,转载请声明来源钻瓜专利网。