当前位置: 首页 > 专利查询>四川大学专利>正文

面向海量数据流的实时并行分类方法技术

技术编号:13986929 阅读:57 留言:0更新日期:2016-11-13 04:26
本发明专利技术公开了一种面向海量数据流的实时并行分类方法,所述的方法包括以下步骤:步骤一、数据Spout;步骤二、过滤批化Bolt;步骤三、模型Bolt;步骤四、局部统计与计算Bolt;步骤五、评估Bolt。本发明专利技术针对大数据“4V”特点中Volume(海量)、Velocity(高速)、Value(价值)这“3V”特点和海量数据高效处理的需求,实现了基于Storm平台的垂直并行化P‑VFDT算法;在大规模数据上的实验表明,P‑VFDT算法和VFDT算法有着相近的分类性能,但是单机多核环境的P‑VFDT算法比VFDT算法耗时约少12%,集群环境的P‑VFDT算法比VFDT算法耗时约少8%。

【技术实现步骤摘要】

本专利技术涉及互联网
,涉及一种面向海量数据流的实时并行分类方法
技术介绍
随着互联网和数据处理技术的不断发展,搜索引擎、电子商务、微博和即时通讯等应用为人们提供了海量的信息和便捷的服务,在丰富人们生活的同时也极大提高了人们的工作效率和生活情趣。人们在使用这些应用和服务的过程中也产生了各种类型的数据,如向搜索引擎发出搜索请求、在电商网站浏览商品,评论转发微博和在线聊天等。这些数据经过一定的时间积累规模都已十分庞大,并且保持着较高的增长速率,大数据的“4V”特点——Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值),日益凸显。海量数据流是指数据总量宏大且到达速率极高的数据流。例如大型传感器网络每秒可收集百万量级数据,网络路由器每秒收集到的数据量更是复杂和规模庞大。数据的总量和增量决定了这些数据不能经过完全存储后再进行处理,而且必须保证对数据的处理速率要大于或等于数据的到达速率才能保证数据处理系统的有效运转。海量数据流的分类,相比于一般的数据流处理过程来说,计算量要高得多,这也对算法的性能提出了更大的挑战。实现对数据流高效准确的分类,具备极大的现实意义。一方面,可以实现对数据的筛选,缩小下游节点处理数据的规模;另一方面,可以实时监控目标类别数据的变化情况,实现对于异常情况实 时告警。所以高效准确是应对海量数据流分类时必须解决的问题。相关技术背景(1)Storm相关技术Topology是对运行在Storm集群中一个工作任务的逻辑抽象,Stream是一个无界的数据流序列,其中的一条数据为Tuple,处理Stream的原语是Spout和Bolt,他们均是对计算过程的逻辑抽象。Spout作为流的数据源用于产生Stream,即发送数据,而Bolt用作对Stream进行处理和传播,即接收数据、处理数据、发送数据。图1为一个简单Topology示例。不同的Spout产生不同的数据,不同的Bolt执行不同的任务。Spout和Bolt之间通过Stream连接,数据从Spout流向Bolt;不同Bolt之间通过不同的Stream相连接。(2)垂直并行化图2为分布式数据流决策树的垂直并行化方案,其中数据Spout向模型Bolt发送数据,模型Bolt维持一个完整的全局决策树,而局部统计与计算Bolt负责存储部分叶节点的属性统计信息以及对这些属性进行评估分数的计算。通过人工设定局部统计与计算Bolt的并行度,使得模型Bolt在对属性数据分发的时候,可根据并行度进行均分。适当的并行度可以提高运行效率,但是当并行度过高时,会产生的局部计算结果过多,使集群中各节点间的网络通信量增加,也会增大模型Bolt汇总局部计算结果的计算量。垂直并行化比较适合高维数据,因为在数据维度很高时,垂直并行化可将计算代价极高的计算可行划分的评估分数这一过程并行处理。另外,垂直并行化因为不需要保持多个树结构,其内存消耗较小。但是,当数据的维度不够高时,进行划分和并行计算的性价比可能不高。
技术实现思路
本专利技术克服了现有技术的不足,提供一种面向海量数据流的实时并行分类方法。该方法基于Storm实时数据流处理框架,能适用于大数据场景。实验结果证实了该方法的可行性与有效性。为解决上述的技术问题,本专利技术采用以下技术方案:一种面向海量数据流的实时并行分类方法,所述的方法包括以下步骤:步骤一、数据Spout数量为1,连续产生数据记录;步骤二、过滤批化Bolt数量为1,接收数据消息,对收集的数据进行过滤筛选,并积累成批发送给模型Bolt;步骤三、模型Bolt数量为1,对一批数据进行处理,将数据的分类结果,发送给评估Bolt进行评估;将数据进行分解,然后发送给局部统计与计算Bolt的对应Task;当数据所在的叶节点通过划分测试时,向局部统计与计算Bolt的所有Task发送计算消息,请求划分结果;收到局部统计与计算Bolt的所有Task发来的计算结果后,判断是否执行最终划分,如果通过最终划分测试,则执行划分操作,并向局部统计与计算Bolt的所有Task发送删除划分前叶节点的统计信息的消息;步骤四、局部统计与计算Bolt数量为n,收到批属性数据消息时,更新属性相关统计信息;收到计算消息时,计算对应节点的最优划分评估分数;收到删除消息时,删除模型中已经完成分割的节点的属性相关统计信息;步骤五、评估Bolt。更进一步的技术方案是所述步骤三包括:当模型Bolt收到批数据消息后,对于批数据消息中的每一条数据,找到对应的叶结点,并根据叶节点的数据类标分布进行分类,同时向评估Bolt发出分类结果的消息;如果数据所在的叶节点已经处于划分状态,则无需使用该数据对模型进行训练,只执行分类操作;否则,需要使用该数据对模型进行训练。更进一步的技术方案是所述对模型进行训练包括:首先更新叶节点的数据类标分布,然后将数据分解为以节点编号、属性编号、属性值的三元组,并添加到节点的属性消息列表中,根据节点的属性消息列表生成批属性消息,同时将叶节点加入到批数据所在叶节点的集合中。更进一步的技术方案是所述步骤四中,在局部统计与计算Bolt中使用的数据结构包括一个:节点id,属性id,属性统计信息的表格localTable,该Bolt的每一个Task都有一个localTable。更进一步的技术方案是所述步骤四中,对批属性消息的处理是根据消息中的节点id和属性id,更新属性的统计信息。更进一步的技术方案是所述步骤四中,对计算消息的处理是通过节点id,计算localTable中该节点的所有属性的可行划分,找出最优和次优划分并作为局部计算结果返回。更进一步的技术方案是所述步骤四中,对删除消息的处理是根据消息中的节点id,删除localTable中该节点所有属性的统计信息。更进一步的技术方案是所述步骤五包括:并行与非并行算法性能对比和/或批数据消息的大小对性能的影响分析。更进一步的技术方案是所述步骤五包括实验分析,所述实验分析中的实验数据通过超平面生成算法生成;所述超平面生成算法包括:设需要生成的数据 维度为attNum,每一个维度对应一个属性,数据中噪声比率为noiseP,发生概念漂移的属性数为driftNum,概念漂移幅度为magChange,反向漂移概率为sigmaPercentage,则数据的生成过程如下:1)、随机初始化超平面的法向量,包括:随机初始化各属性的权重weights;2)、初始化发生概念漂移的各属性方向sigmas,均为1;3)、生成attNum个0到1之间的随机数作为各属性的取值,并按照weights加权求和得到sum,同时对weights求和得到weightSum;4)、如果则数据类标为1,否则,数据类标为0;5)、生成一个0到1之间的随机数r,如果r<noiseP,则修改数据类标为相反类标,即噪声数据;6)、对于前driftNum个属性,更新weights[i]为weights[i]+sigmas[i]×magChange,其中i为属性编号;生成一个0到1之间的随机数r,如果r<sigmaPercentage,则修改sigmas[i]为-sigmas[i];每产生一条数据后,对应的超平面为 Σ 本文档来自技高网
...

【技术保护点】
一种面向海量数据流的实时并行分类方法,其特征在于:所述的方法包括以下步骤:步骤一、数据Spout数量为1,连续产生数据记录;步骤二、过滤批化Bolt数量为1,接收数据消息,对收集的数据进行过滤筛选,并积累成批发送给模型Bolt;步骤三、模型Bolt数量为1,对一批数据进行处理,将数据的分类结果,发送给评估Bolt进行评估;将数据进行分解,然后发送给局部统计与计算Bolt的对应Task;当数据所在的叶节点通过划分测试时,向局部统计与计算Bolt的所有Task发送计算消息,请求划分结果;收到局部统计与计算Bolt的所有Task发来的计算结果后,判断是否执行最终划分,如果通过最终划分测试,则执行划分操作,并向局部统计与计算Bolt的所有Task发送删除划分前叶节点的统计信息的消息;步骤四、局部统计与计算Bolt数量为n,收到批属性数据消息时,更新属性相关统计信息;收到计算消息时,计算对应节点的最优划分评估分数;收到删除消息时,删除模型中已经完成分割的节点的属性相关统计信息;步骤五、评估Bolt。

【技术特征摘要】
1.一种面向海量数据流的实时并行分类方法,其特征在于:所述的方法包括以下步骤:步骤一、数据Spout数量为1,连续产生数据记录;步骤二、过滤批化Bolt数量为1,接收数据消息,对收集的数据进行过滤筛选,并积累成批发送给模型Bolt;步骤三、模型Bolt数量为1,对一批数据进行处理,将数据的分类结果,发送给评估Bolt进行评估;将数据进行分解,然后发送给局部统计与计算Bolt的对应Task;当数据所在的叶节点通过划分测试时,向局部统计与计算Bolt的所有Task发送计算消息,请求划分结果;收到局部统计与计算Bolt的所有Task发来的计算结果后,判断是否执行最终划分,如果通过最终划分测试,则执行划分操作,并向局部统计与计算Bolt的所有Task发送删除划分前叶节点的统计信息的消息;步骤四、局部统计与计算Bolt数量为n,收到批属性数据消息时,更新属性相关统计信息;收到计算消息时,计算对应节点的最优划分评估分数;收到删除消息时,删除模型中已经完成分割的节点的属性相关统计信息;步骤五、评估Bolt。2.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤三包括:当模型Bolt收到批数据消息后,对于批数据消息中的每一条数据,找到对应的叶结点,并根据叶节点的数据类标分布进行分类,同时向评估Bolt发出分类结果的消息;如果数据所在的叶节点已经处于划分状态,则无需使用该数据对模型进行训练,只执行分类操作;否则,需要使用该数据对模型进行训练。3.根据权利要求2所述的面向海量数据流的实时并行分类方法,其特征在于所述的对模型进行训练包括:首先更新叶节点的数据类标分布,然后将数据分解为以节点编号、属性编号、属性值的三元组,并添加到节点的属性消息列表中,根据节点的属性消息列表生成批属性消息,同时将叶节点加入到批数据所在叶节点的集合中。4.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤四中,在局部统计与计算Bolt中使用的数据结构包括一个:节点id,属性id,属性统计信息的表格localTable,该Bolt的每一个Task都有一个localTable。5.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤四中,对批属性消息的处理是根据消息中的节点id和属性id,更新属性的统计信息。6.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤四中,对计算消息的处理是通过节点id,计算localTable中该节点的所有属性的可行划分,找出最优和次优划分并作为局部计算结果返回。7.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤四中,对删除消息的处理是根据消息中的节点id,删除localTable中该节点所有属性的统计信息。8.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤五包括:并行与非并行算法性能对比和/或批数据消息的大小对性能的影响分析。9.根据权利要求1所述的面向海量数据流的实时并行分类方法,其特征在于所述的步骤五包括实验分析,所述实验分析中的实验数据通过超平面生成算法生成;所述超平面生成算法包括:设需要生成的数据维度为attNum,每一个维度对应一个属性,数据中噪声比率为noiseP,发生概念漂移的属性数为driftNum,概念漂移幅度为magChange,反向...

【专利技术属性】
技术研发人员:李川李旺龙
申请(专利权)人:四川大学
类型:发明
国别省市:四川;51

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

1