一种Hadoop平台计算节点负载预测方法与流程

文档序号:18471154发布日期:2019-08-20 20:18阅读:366来源:国知局
一种Hadoop平台计算节点负载预测方法与流程

本发明涉及分布式、大数据、云计算领域,具体涉及一种hadoop平台计算节点负载预测方法。



背景技术:

hadoop平台中,随着用户提交任务量的变化,各个计算节点的负载随之变化,计算节点在不同时间段下的负载有着显著的差别。通过对各个结算节点历史数据的分析,可以提取有价值的信息,进而合理预测下一时间段内的计算节点的负载,精确预测计算节点的负载可以为资源管理器合理地给appmaster分配资源提供依据,进而缓解高负载节点的压力,提升低负载节点的计算资源利用率,提高hadoop集群的可靠性和性能。负载信息可以看作时间序列,时间序列由线性特征和非线性特征两部分组成,线性特征可由传统的arima模型提取,而非线性特性难以提取,故传统的预测模型难以精确拟合时间序列。



技术实现要素:

基于以上技术不足,本发明提出了一种全新的计算节点负载预测方法,利用arima模型拟合时间序列的线性特征,再利用rnn循环神经网络对非线性特征的残差部分进行二次拟合,将arima与rnn神经网络所预测出来的结果线性相加作为最终的预测结果,实现了hadoop平台下更加精确的计算节点负载预测。具体包括基于滑动窗口二次检测算法的数据预处理部分、基于arima算法的计算节点负载线性预测部分、基于rnn算法计算节点负载非线性预测部分。基于滑动窗口二次检测算法的数据预处理部分对计算节点的负载数据进行预处理,减少异常波动值对负载预测模型建立的影响。基于滑动窗口的异常点检测算法利用定长的滑动窗口将计算节点负载所形成的时间序列分段为多个负载区间,通过提取各个负载区间的特征进行一次判断再通过负载区间的关联性来进行二次判断,进而对负载异常点进行处理。基于arima算法的计算节点负载线性预测采用自回归积分滑动平均模型(arima)预测计算节点负载序列的线性部分。基于rnn算法计算节点负载非线性预测部分通过rnn模型对arima无法提取的残差进一步建模,提取计算节点的负载序列非线性部分。最后将线性部分和非线性部分结果相加作为最终的计算节点负载预测结果,以提高最终的计算节点负载预测的精确度。

一种hadoop平台计算节点负载预测方法,具体步骤如下:

步骤1:基于滑动窗口二次检测算法的数据预处理方法,具体包括:

步骤1.1:加载原始负载数据,选取定长滑动窗口,将负载时间序列分段为m个负载区间。

步骤1.2:提取各个负载区间的特征,一次判断异常区间,具体包括:

步骤1.2.1:计算负载均值,负载方差,并根据公式(1),公式(2)计算负载区间上界和下界。

其中,j为第j个负载区间,为负载均值,σj为负载方差,为负载区间上界,为负载区间下界,z为服从n(0,1)分布的随机变量,α为置信水平。

步骤1.2.2:根据公式(3)计算滑动窗口内的置信区间的距离半径,作为负载区间特征。

其中,rj为置信区间内距离半径,即负载区间特征。

步骤1.2.3:判断负载区间的距离半径rj和阈值r的大小。

步骤1.2.3.1:当rj>r时,则负载信息序列在第j个负载区间可能存在异常点。跳转到步骤1.3。

步骤1.2.3.2:当rj≤r时,则负载信息序列在第j个负载区间正常。跳转到步骤1.3。

步骤1.3:提取各个负载区间之间的关联度,二次判断异常区间,具体如下:

步骤1.3.1:用公式(4)计算两个相邻滑负载区间的关联度。

其中,ωj为相邻负载区间的关联度。

步骤1.3.2:比较相邻滑动负载区间的关联性ωj和临界值ω的大小。

步骤1.3.2.1:当ωj>ω时,则判定第j个负载区间异常,删除异常负载区间的负载数据。

步骤1.3.2.2:当ωj≤ω时,则判定第j个负载区间正常,将负载区间数据用于模型建立。

步骤2:基于arima(差分自回归平均移动模型)算法的节点负载线性预测方法,具体包括:

步骤2.1:对计算节点负载序列的负载值进行白噪声检验,判断计算节点负载序列的负载值之间是否有关联。包括纯随机性检验和方差齐性检验。采用q统计量进行纯随机特性检验,采用怀特法进行方差齐性检验。其中,白噪声定义为:在随机性检验和方差齐性检验中接收原假设时为白噪声;

步骤2.1.1:进行纯随机性检验,原假设为计算节点负载序列的负载值之间相独立,并计算检验统计量q统计量。

步骤2.1.1.1:当检验统计量在置信区间内,接受原假设。序列为纯随机性序列,跳转步骤2.1.3.1。

步骤2.1.1.2:检验统计量不在置信区间内,拒绝原假设。序列不是纯随机性序列,跳转步骤2.1.3.2。

步骤2.1.2:进行方差齐性检验,原假设为序列为同方差,计算统计量的值。

步骤2.1.2.1:当检验统计量在置信区间内,接受原假设。序列满足方差齐性,跳转步骤2.1.3.1。

步骤2.1.2.2:检验统计量不在置信区间内,拒绝原假设。序列不满足方差齐性,跳转步骤2.1.3.2。

步骤2.1.3:判断是否为白噪声。

步骤2.1.3.1:若是白噪声,没有有效信息可提取,删除该计算节点负载区间数据。

步骤2.1.3.2:若不是白噪声,将该计算节点负载区间数据用于模型建立。

步骤2.2:采用adf法进行计算节点负载序列的平稳性检验。

步骤2.2.1:若负载序列平稳,用负载序列进行arma(自回归移动平均模型)建模。跳转到步骤2.3。

步骤2.2.2:若负载序列不平稳,根据公式(5)、(6)通过差分法对负载序列处理,直至负载序列平稳。

δyt=yt-yt-1=(1-l)yt(5)

δdyt=(1-l)dyt(6)

其中,yt为负载序列,δyt为一阶差分,d为差分阶数,l为算子。

步骤2.3:采用自相关函数(acf)、偏自相关函数(pacf)来判别arma(p,q)模型的p阶数和q阶数,具体包括:

步骤2.3.1:根据公式(7)计算自相关函数(acf)描述的时间序列观测值与其过去的观测值之间的线性相关性。

其中,ρk为时间序列观测值与其过去的观测值之间的线性相关性,xi为负载序列第i个观测值,为总体均值,i为计数变量,h为当前观测值与过去观测值间隔个数,n为时间序列个数。

步骤2.3.2:根据公式(8)和公式(9)计算偏自相关函数(pacf)描述的在给定中间观测值的条件下时间序列观测值与其过去的观测值之间的线性相关性。

其中,为给定中间观测值的条件下时间序列观测值与其过去的观测值之间的线性相关性,xt为t时刻负载序列观测值,为t时刻负载序列均值。

步骤2.3.3:p由显著不为0的偏自相关系数的数目决定,序列的偏自相关函数表现为拖尾性,偏自相关系数的值都在置信区间以内,初步判断arma模型的阶数p。

步骤2.3.4:q由显著不为0的自相关系数的数目决定,序列的自相关函数表现为截尾性,自相关系数的值都在置信区间内,初步判断arma模型的阶数q。

步骤2.3.5:利用计算节点负载数据和估计的负载方差,通过最小信息准则aic进行定阶,根据公式(10)确定p,q的值。

aic(p,q)=nlnσ12+2(p+q+1)(10)

其中,σ1估计的负载方差。

步骤2.4:采用最小二乘法法对负载序列平稳化后的arma模型中的参数进行估计。

步骤2.4.1:根据公式(11)、(12)计算误差平方和。

其中,α是待估计参数,e是不相关的零均值误差。

其中,q(α)为误差平方和。

步骤2.4.2:根据公式(13)计算参数α的估计值即为arima算法预测出来的结果。

步骤3:基于rnn算法的节点负载非线性残差预测方法,具体包括:

步骤3.1:构建rnn网络模型,中间两层隐层。设置输入负载信息,输出为arima模型与真实值之间的偏差。

步骤3.2:采用bptt算法训练网络各层间的权重与偏差,具体包括:

步骤3.2.1:根据公式(14)计算神经网络t时刻负载偏差的输出ot。

其中,ot为t时刻rnn神经网络的负载偏差输出,x代表输入的负载信息,st-1代表隐藏层t-1时刻的输出,w代表时间轴上的权值矩阵,u代表输入层的权值矩阵,v代表输出层的权值,代表输出层的激活函数,代表隐藏层的激活函数;

步骤3.2.2:根据公式(15)和公式(16)计算t时刻损失函数lt和总损失函数。

lt=(ot-yt)2(15)

其中,lt为t时刻的损失函数,yt为t时刻真实负载偏差,l为总损失函数。

步骤3.2.3:根据公式(17)和公式(18)更新w,u,使得损失函数l最小。

步骤3.3:保存rnn网络权重,确定最终模型,预测节点负载残差,节点负载残差即为rnn算法预测出来的结果。

步骤4:将arima算法与rnn算法预测出来的结果进行线性相加作为最终的预测结果。

有益技术效果:

通过对各个结算节点历史数据的分析,可以提取有价值的信息,进而合理预测下一时间段内的计算节点的负载,精确预测计算节点的负载可以为资源管理器合理地给appmaster分配资源提供依据,进而缓解高负载节点的压力,提升低负载节点的计算资源利用率,提高hadoop集群的可靠性和性能。本发明所述的hadoop平台计算节点负载预测方法,通过arima和rnn模型组合,更加精确的对负载进行预测。

附图说明

图1为本发明实施例的一种hadoop平台计算节点负载预测方法总流程图;

图2为本发明实施例的异常负载区间二次判定过程图;

图3为本发明实施例的arma阶数判别图;

图4本发明实施例的rnn循环神经网络模型图;

图5为本发明实施例的no.1计算节点负载预测图。

具体实施方式

下面结合附图和具体实施实例对发明做进一步说明,本发明为一种hadoop平台计算节点负载预测方法,具体包括基于滑动窗口二次检测算法的数据预处理部分、基于arima算法的计算节点负载线性预测部分、基于rnn算法计算节点负载非线性预测部分。基于滑动窗口二次检测算法的数据预处理部分减少异常波动值对负载预测模型建立的影响;基于arima算法的计算节点负载线性预测部分,由arima模型进行时间序列的线性部分预测;基于rnn算法计算节点负载非线性预测部分,由rnn则进行时间序列非线性部分的残差预测。最后将线性结果和非线性结果进行相加,作为最后的计算节点负载预测结果。

本系统实施节点配置参数:cpu核数为8核,cpu主频2.2ghz,内存类型ddr3-1333ecc,内存容量8gb,硬盘类型为15000转sas硬盘,硬盘容量300gb,带宽1000mbps。

一种hadoop平台计算节点负载预测方法,如图1所示,具体步骤如下:

步骤1:基于滑动窗口二次检测算法的数据预处理方法,如图2所示,具体包括:

步骤1.1:加载原始负载数据,选取定长l滑动窗口,将负载时间序列分段为m个负载区间。

步骤1.2:提取各个负载区间的特征,一次判断异常区间,具体包括:

步骤1.2.1:计算负载均值,负载方差,并根据公式(1),公式(2)计算负载区间上界和下界。

其中,j为第j个负载区间,为负载均值,σj为负载方差,为负载区间上界,为负载区间下界,z为服从n(0,1)分布的随机变量,α为置信水平,取值为0.05。

步骤1.2.2:根据公式(3)计算滑动窗口内的置信区间的距离半径,作为负载区间特征。

其中,rj为置信区间内距离半径,即负载区间特征。

步骤1.2.3:判断负载区间的距离半径rj和阈值r的大小。

步骤1.2.3.1:当rj>r时,则负载信息序列在第j个负载区间可能存在异常点。跳转到步骤1.3。

步骤1.2.3.2:当rj≤r时,则负载信息序列在第j个负载区间正常。跳转到步骤1.3。

步骤1.3:提取各个负载区间之间的关联度,二次判断异常区间,具体如下:

步骤1.3.1:用公式(4)计算两个相邻滑负载区间的关联度。

其中,ωj为相邻负载区间的关联度。

步骤1.3.2:比较相邻滑动负载区间的关联性ωj和临界值ω的大小。

步骤1.3.2.1:当ωj>ω时,则判定第j个负载区间异常,删除异常负载区间的负载数据。

步骤1.3.2.2:当ωj≤ω时,则判定第j个负载区间正常,将负载区间数据用于模型建立。

步骤2:基于arima(差分自回归平均移动模型)算法的节点负载线性预测方法,如图3所示,具体包括:

步骤2.1:对计算节点负载序列的负载值进行白噪声检验,判断计算节点负载序列的负载值之间是否有关联。包括纯随机性检验和方差齐性检验。采用q统计量进行纯随机特性检验,采用怀特法进行方差齐性检验。其中,白噪声定义为:在随机性检验和方差齐性检验中接收原假设时为白噪声。

步骤2.1.1:进行纯随机性检验,原假设为计算节点负载序列的负载值之间相独立,并计算检验统计量q统计量。

步骤2.1.1.1:当检验统计量在置信区间内,接受原假设。序列为纯随机性序列,跳转步骤2.1.3.1。

步骤2.1.1.2:检验统计量不在置信区间内,拒绝原假设。序列不是纯随机性序列,跳转步骤2.1.3.2。

步骤2.1.2:进行方差齐性检验,原假设为序列为同方差,计算统计量的值。

步骤2.1.2.1:当检验统计量在置信区间内,接受原假设。序列满足方差齐性,跳转步骤2.1.3.1。

步骤2.1.2.2:检验统计量不在置信区间内,拒绝原假设。序列不满足方差齐性,跳转步骤2.1.3.2。

步骤2.1.3:判断是否为白噪声。

步骤2.1.3.1:若是白噪声,没有有效信息可提取,删除该计算节点负载区间数据。

步骤2.1.3.2:若不是白噪声,将该计算节点负载区间数据用于模型建立。

步骤2.2:采用adf法进行计算节点负载序列的平稳性检验。

步骤2.2.1:若负载序列平稳,用负载序列进行arma(自回归移动平均模型)建模。跳转到步骤2.3。

步骤2.2.2:若负载序列不平稳,根据公式(5)、(6)通过差分法对负载序列处理,直至负载序列平稳。

δyt=yt-yt-1=(1-l)yt(5)

δdyt=(1-l)dyt(6)

其中,yt为负载序列,δyt为一阶差分,d为差分阶数,l为算子。

步骤2.3:采用自相关函数(acf)、偏自相关函数(pacf)来判别arma(p,q)模型的p阶数和q阶数,具体包括:

步骤2.3.1:根据公式(7)计算自相关函数(acf)描述的时间序列观测值与其过去的观测值之间的线性相关性。

其中,ρk为时间序列观测值与其过去的观测值之间的线性相关性,xi为负载序列第i个观测值,为总体均值,i为计数变量,h为当前观测值与过去观测值间隔个数,n为时间序列个数。

步骤2.3.2:根据公式(8)和公式(9)计算偏自相关函数(pacf)描述的在给定中间观测值的条件下时间序列观测值与其过去的观测值之间的线性相关性。

其中,为给定中间观测值的条件下时间序列观测值与其过去的观测值之间的线性相关性,xt为t时刻负载序列观测值,为t时刻负载序列均值。

步骤2.3.3:p由显著不为0的偏自相关系数的数目决定,序列的偏自相关函数表现为拖尾性,偏自相关系数的值都在置信区间以内,初步判断arma模型的阶数p。其中偏自相关系数在n步之后的判定:故置信区间为

步骤2.3.4:q由显著不为0的自相关系数的数目决定,序列的自相关函数表现为截尾性,自相关系数的值都在置信区间内,初步判断arma模型的阶数q。自相关函数ρk在k步截尾后的判定:置信区间为

步骤2.3.5:利用计算节点负载数据和估计的负载方差,通过最小信息准则aic进行定阶,根据公式(10)确定p,q的值。

aic(p,q)=nlnσ12+2(p+q+1)(10)

其中,σ1估计的负载方差。

步骤2.4:采用最小二乘法法对负载序列平稳化后的arma模型中的参数进行估计。

步骤2.4.1:根据公式(11)、(12)计算误差平方和。

其中,α是待估计参数,e是不相关的零均值误差。

其中,q(α)为误差平方和。

步骤2.4.2:根据公式(13)计算参数α的估计值即为arima算法预测出来的结果。

步骤3:基于rnn算法的节点负载非线性残差预测方法,如图4所示,具体包括:

步骤3.1:构建rnn网络模型,中间两层隐层。设置输入负载信息,输出为arima模型与真实值之间的偏差。

步骤3.2:采用bptt算法训练网络各层间的权重与偏差,具体包括:

步骤3.2.1:根据公式(14)计算神经网络t时刻负载偏差的输出ot。

其中,ot为t时刻rnn神经网络的负载偏差输出,x代表输入的负载信息,st-1代表隐藏层t-1时刻的输出,w代表时间轴上的权值矩阵,u代表输入层的权值矩阵,v代表输出层的权值,代表输出层的激活函数,代表隐藏层的激活函数;

步骤3.2.2:根据公式(15)和公式(16)计算t时刻损失函数lt和总损失函数。

lt=(ot-yt)2(15)

其中,lt为t时刻的损失函数,yt为t时刻真实负载偏差,l为总损失函数。

步骤3.2.3:根据公式(17)和公式(18)更新w,u,使得损失函数l最小。

步骤3.3:保存rnn网络权重,保存最终模型,预测节点负载残差,节点负载残差即为rnn算法预测出来的结果。

步骤4:将arima算法与rnn算法预测出来的结果进行线性相加作为最终的预测结果。

实验结果:

本发明所述的方法与arima和rnn神经网络算法进行对比,预测负载结果如图5所示,并且在不同指标如mse、rmse、mae进行了比较,结果显示本发明所述的方法在mse,rmse,mae三个指标上均低于单一的rnn模型和arima模型,结果如表1所示。

表1台计算节点负载预测误差结果

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1