基于Storm的CVFDT在CDN运维预测中的方法转让专利

申请号 : CN201610147855.6

文献号 : CN105824715B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 季一木郎贤波王汝传谈海宇岳栋张殿超张永潘

申请人 : 南京邮电大学

摘要 :

本发明公开了基于Storm的CVFDT在CDN运维预测中的方法,主要用于CDN运维领域,通过对Storm拓扑进行相应建模,对高强度的应用下的磁盘或者刀片服务器出现故障的可能性进行预判。从而提高用户感受,提升服务质量。同时也为后台人员迁移数据,动态调整负载等等方面提供了一个更可靠的标准。

权利要求 :

1.基于Storm的CVFDT在CDN运维预测中的方法,其特征在于,包括以下步骤:

A1、启动storm拓扑,设置数据喷发节点并分配并发数;

A2、将采集的磁盘状态数据读取到训练数据源Spout,训练数据源Spout以流的形式把数据样本传递给预处理Bolt进行处理;

A3、在预处理Bolt中设置数据属性集并分配Bolt的并发数,预处理Bolt将样本属性值和属性集进行匹配,将样本流中属性和类标签完整的数据元组转换成实例类,将处理好的实例数据元组传递给建树Bolt建立预测模型;

A4、建树Bolt存储接收到的实例数据元组,基于Hoeffding不等式建立决策树:达到初始建树条件时,初始化一个窗口W,并基于当前的窗口上初始化一个根节点,当样本集合的最佳属性和次佳属性差值满足Hoeffding不等式时,模型叶子节点自动分裂并不断更新,同时产生相应的替代子树防止概念漂移的发生;树的最底层叶子节点存储类别标记值(YES,NO),YES代表磁盘未来一小时内可能会损坏,NO代表不会损坏;快速决策树算法周期性的将最新的预测模型存入Redis缓存数据库中;

A5、快速决策树算法设置检测有效性的间隔,周期性的检测决策树的每个内部节点及其替代子树的有效性,当用户点播行为或环境的突变影响了磁盘状态数据的分布时,即认为发生了概念漂移,此时当前的预测模型可能与磁盘状态数据不匹配;

A6、窗口W保存实时进入的新的磁盘数据样本,同时删除先进入窗口的旧的磁盘数据样本;重新寻找最佳分裂属性,新的属性成为一个替代子树的根节点,并且依据该根节点建立替代子树;如果后继滑动窗口的样本在替代子树上的分类精度高于原先的决策树,则替代子树取代原先的决策树,以维持滑动窗口的样本和更新后的决策树的一致性;

A7、对服务器后续出现故障的可能性进行预判时,决策树Spout从Redis数据库中读取出决策树模型,传递给分类Bolt,由分类数据Spout喷发出待分类数据,同样先经过预处理Bolt处理后将实例数据元组传递给分类Bolt,分类Bolt调用分类的方法得到元组对应的决策树叶子节点的类别标签即实现了输入的磁盘状态数据未来的预测标记值(YES,NO)。

2.根据权利要求1所述的基于Storm的CVFDT在CDN运维预测中的方法,其特征在于,所述基于Hoeffding不等式建立决策树过程为:使用Hoeffding边界量化叶节点中确定最优分裂属性所需要的样本个数,其中Hoeffding边界描述如下:对一个真值随机变量r,其取值范围为R,假定对r取了n个独立的观察值,并计算了它们的平均值 其Hoeffding约束对于可信度1-δ,变量r的真实值至少是 其中 这里的r是信息增益,R的取值范围是log2 Classes,Classes是类别的数量;Hoeffding树中每个叶节点的内存占用为O(dvc),其中,d为属性数目,v为每个属性可能的最大取值数目,c为类别数目。

说明书 :

基于Storm的CVFDT在CDN运维预测中的方法

技术领域

[0001] 本发明涉及CDN(Content Delivery Network,内容分发网络)设备故障预测领域,具体是通过基于Storm的CVFDT在CDN运维预测中的方法。

背景技术

[0002] 在CDN运维领域,当前大数据环境下的数据交互量是多样、高速、海量的,这对服务器磁盘或者刀片服务器的负载带来了巨大的压力,同时温度、湿度以及用户的点播行为等因素都是难以预知的,机器出现故障的概率逐渐增加。如果等到刀片或者磁盘损坏才进行更换,无疑会严重降低使用者的感受,给服务器运维方面带来很大的不利影响。因此当前急需研发一套方法对刀片服务器、磁盘未来是否发生故障做出提前预判,这样后台可以迁移数据、动态调整负载等等手段来提高可用性。

发明内容

[0003] 为了解决上述问题,本发明提供一种基于Storm的CVFDT在CDN运维预测中的方法,帮助运维人员对服务器磁盘或者刀片服务器的负载情况和故障发生率实现提前预判,为后台迁移数据、动态调整负载等等手段提高可用性。
[0004] 分布式流计算系统Storm是一套分布式的、可靠的,可容错的用于处理流式数据的系统。它提供的最基本的处理流数据的原语是Spout(消息源)和Bolt(处理逻辑),通常Spout会从外部数据源(队列、数据库等)读取数据,然后封装成元组的形式,之后发送到数据流中。Bolt处理输入的数据流,并产生新的输出数据流。它可以执行过滤、函数操作、连接操作数据库等任何操作。Storm系统的这些原语大大简化了并行实时数据处理,是为了适应用海量数据和大规模计算等新需求而发展出来的模型架构。一方面它在编写和运行大型分布式程序计算方面具有很大的优势,主要是它具有的方便和简捷的特性。另一方面,Storm系统具有良好的容错性和很高的健壮性等特点,这些特点使Storm在研究领域和应用领域都受到了极大的欢迎,并且得到了广泛的应用。
[0005] 基于Storm的CVFDT在CDN运维预测中的方法,包括以下步骤:
[0006] A1、启动storm拓扑,设置数据喷发节点并分配并发数;
[0007] A2、将采集的磁盘状态数据读取到训练数据源Spout,训练数据源Spout以流的形式把数据样本传递给预处理Bolt进行处理;
[0008] A3、在预处理Bolt中设置数据属性集并分配Bolt的并发数,预处理Bolt将样本属性值和属性集进行匹配,将样本流中属性和类标签完整的数据元组转换成实例类,将处理好的实例数据元组传递给建树Bolt建立预测模型;
[0009] A4、建树Bolt存储接收到的实例数据元组,基于Hoeffding不等式建立决策树:达到初始建树条件时,初始化一个窗口W,并基于当前的窗口上初始化一个根节点,当样本集合的最佳属性和次佳属性差值满足Hoeffding不等式时,模型叶子节点自动分裂并不断更新,同时产生相应的替代子树防止概念漂移的发生;树的最底层叶子节点存储类别标记值(YES,NO),YES代表磁盘未来一小时内可能会损坏,NO代表不会损坏;快速决策树算法周期性的将最新的预测模型存入Redis缓存数据库中;
[0010] A5、快速决策树算法设置检测有效性的间隔,周期性的检测决策树的每个内部节点及其替代子树的有效性,当用户点播行为或环境的突变影响了磁盘状态数据的分布时,即认为发生了概念漂移,此时当前的预测模型可能与磁盘状态数据不匹配;
[0011] A6、窗口W保存实时进入的新的磁盘数据样本,同时删除先进入窗口的旧的磁盘数据样本;重新寻找最佳分裂属性,新的属性成为一个替代子树的根节点,并且依据该根节点建立替代子树;如果后继滑动窗口的样本在替代子树上的分类精度高于原先的决策树,则替代子树取代原先的决策树,以维持滑动窗口的样本和更新后的决策树的一致性;
[0012] A7、对服务器后续出现故障的可能性进行预判时,决策树Spout从Redis数据库中读取出决策树模型,传递给分类Bolt,由分类数据Spout喷发出待分类数据,同样先经过预处理Bolt处理后将实例数据元组传递给分类Bolt,分类Bolt调用分类的方法得到元组对应的决策树叶子节点的类别标签即实现了输入的磁盘状态数据未来的预测标记值(YES,NO)。
[0013] 所述基于Hoeffding不等式建立决策树过程为:使用Hoeffding边界量化叶节点中确定最优分裂属性所需要的样本个数,其中Hoeffding边界描述如下:对一个真值随机变量r,其取值范围为R,假定对r取了n个独立的观察值,并计算了它们的平均值 其Hoeffding约束对于可信度1-δ,变量r的真实值至少是 其中 这里的r是信息增益,R的取值范围是log2Classes,Classes是类别的数量;Hoeffding树中每个叶节点的内存占用为O(dvc),其中,d为属性数目,v为每个属性可能的最大取值数目,c为类别数目。
[0014] 本发明能够快速的处理实时的流数据,对服务器状态高效分析并构建出实时精确的预测模型;快速决策树算法分类模型输入海量的服务器状态数据,能迅速得出故障预测结果(YES,NO);预测模型不随着时间变化的背后推动因素失去精确性,解决了概念漂移的问题。

附图说明

[0015] 图1为本发明实施例基于Storm的CVFDT在CDN运维预测中的方法结构图;
[0016] 图2为图1中实施例的流程图;
[0017] 图3为图1中实施例的时序图。

具体实施方式

[0018] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0019] 参照图1、图2、图3所示,基于Storm的CVFDT在CDN运维预测中的方法的过程是:
[0020] 1、启动一个拓扑,设置数据喷发节点并分配并发数。
[0021] 2、将采集的磁盘状态数据读取到训练数据源Spout,训练数据源Spout将以流的形式把数据传递给后继的Bolt进行处理。
[0022] 3、设置服务器数据集属性和数据预处理Bolt并分配并发数,预处理Bolt将样本属性值和属性集进行匹配,将符合要求的数据元组转换成实例类,随后将处理好的实例数据元组传递给建树Bolt建立预测模型。
[0023] 4、建树Bolt存储接收到的实例数据元组。初始化根节点,滑动窗口W和分裂间隔、检测有效性间隔等各项参数,并将训练样本((x,y),ID)不断的添加到窗口W中。当满足Hoeffding边界条件时,叶子节点自动分裂并不断更新,同时产生相应的替代子树防止概念漂移的发生。最终的叶子节点将存储类别标记值(YES,NO),YES代表磁盘未来一小时内可能会损坏,NO代表不会损坏。快速决策树算法会周期性的将最新的预测模型存入Redis缓存数据库中,供以后的预测使用。
[0024] 5、窗口W未满时,服务器状态数据流不断添加至窗口中,当窗口满时,删除样本所经过节点的统计值,并从窗口中删除旧的样本更新窗口,保证了当前窗口上模型的实时性。
[0025] 6、快速决策树算法设置一个检测有效性的间隔,周期性的检测决策树的每个内部节点及其替代子树,当用户点播行为或环境等背后推动因素的突变影响了磁盘状态数据的分布时,即认为发生了概念漂移,此时当前的预测模型可能与当前的磁盘状态数据产生不匹配的问题。
[0026] 7、预测模型随着数据流不断更新,当替代子树中的样本数达到f,统计接下来到达的测试样本,来比较在此节点下所有替代子树的精度。如果最佳替代树的精度比原叶节点还高,即发生了概念漂移,原叶子节点将会被最精确的替代子树替代。
[0027] 8、序列化Bolt将实时更新的决策树转换为二进制格式存入Redis数据库中供读取分类器的Spout使用。
[0028] 9、当进行预测时,读取分类器Spout从Redis数据库中读取出决策树模型,传递给分类Bolt,由分类数据Spout喷发出待分类数据,同样先经过预处理Bolt处理后将实例数据元组传递给分类Bolt,分类Bolt调用分类的方法得到元组对应的决策树叶子节点的类别标签即实现了输入的磁盘状态数据未来的预测标记值(YES,NO)。
[0029] 本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。