一种可扩展的面向关联的流式图数据划分方法

文档序号:8498713阅读:221来源:国知局
一种可扩展的面向关联的流式图数据划分方法
【技术领域】
[0001] 本发明属于涉及大数据处理领域,更具体地,涉及一种可扩展的面向关联的流式 图数据划分方法。
【背景技术】
[0002] 随着互联网时代到来,包括社交网络、无线传感器网络等在内的流式图数据规模 不断增大。流式图数据具有连续、快速等特点,单机无论从存储容量还是处理效率考虑都已 经捉襟见肘,所以必须考虑将流式图数据划分到集群上进行处理。
[0003] 对于大规模流式图数据的划分处理,现有技术有启发式划分和并行层次划分;启 发式方法是提供一个目标函数,然后划分围绕着这个函数的最优化方向展开,难度在于目 标函数的选取;并行层次划分方法则包含三个划分阶段:粗化阶段(coarsen)、初始化阶段 (initial)和细化提纯阶段(uncoarsenrefinement),粗化阶段把大图收缩为小图,初始化 阶段则对小图进行划分,细化提纯阶段则将小图还原回大图,最终完成划分;这两种方法普 遍存在划分时间过长、划分质量不高和任务负载不均衡的问题,最终导致数据的查询处理 性能低效。
[0004] 另外,米用metis划分工具将资源描述框架(ResourceDescribeFramework, RDF)数据的顶点划分成两两不相交的部分,然后以每个顶点为中心向外延伸n跳,最再使 用Hadoop处理节点之间的数据传输并收集结果,这种方法的缺点是数据冗余度太大,数据 处理速度比较慢。

【发明内容】

[0005] 针对现有技术的以上缺陷或改进需求,本发明提供了一种可扩展的面向关联的流 式图数据划分方法,其目的在于获取流式图数据的节点PageRank值并依此对节点排序,并 根据节点排序与节点之间的关联程度对节点进行逐步聚合,在聚合达到终止条件时获取合 理的图划分结果,解决现有流式图数据划分方法划分质量不高的问题。
[0006] 为实现上述目的,按照本发明的一个方面,提供了一种可扩展的面向关联的流式 图数据划分方法,包括以下步骤:
[0007] (1)以边为单位对流式图数据进行预处理:根据节点到达顺序对节点从小到大编 号,并将节点的编号记作节点的ID;
[0008] 其中,流式图数据包括源节点、目的节点和边上的权值;源节点和目的节点记录在 同一哈希字典文件中;
[0009] (2)将边加入先进先出队列,等待进入滑动窗口处理;其中,边包括源节点ID、目 的节点ID以及边上的权值;
[0010] (3)将各边放入滑动窗口,对进入到当前滑动窗口内的边数与设定阈值进行比较, 若当前窗口内的边数未达到阈值,则从先进先出队列中提取边补全滑动窗口,获取与边对 应的各源节点和目的节点的局部入度值,以及带权图中各边对应权重的比例,并获取各节 点的PageRank值;其中,阈值是指滑动窗口所能容纳的边数N的最大值;
[0011] (4)滑动窗口内各边构成整个流式图数据的一个子图,追踪当前子图的起始节点, 获取子图内每个节点对应的起始节点的集合S;采用关联计算的方法对该集合进行处理, 获取子图内各节点间的关联值Assc以及各节点的关联集合A;
[0012] (5)对滑动窗口内所有节点采用近邻传播聚类算法,获得若干质心,每个质心对应 滑动窗口内部分节点构成的划分结果;根据质心的PageRank值将质心从小到大排序;质心 是指聚类中心,从被处理节点中获取;其中,近邻传播聚类算法是指不需提前设定聚类的个 数,在迭代过程中展示数据集的内部关系并确定合适的聚类个数的一种方法;
[0013] (6)采用关联聚类方法对滑动窗口内所有的节点进行划分,多次迭代得到大小不 一的多个划分结果,将规模小于阈值的划分结果留于滑动窗口;其中,划分结果规模是指该 划分结果所含节点数;关联聚类方法是指:从滑动窗口内的各起始节点出发,依次按步骤 (5)得到的顺序对节点进行处理,根据步骤(4)得到的当前处理节点与各起始节点的关联 值大小,将当前节点划分至与本届点关联值最大的起始节点对应的划分结果中;
[0014] (7)将规模达到或超过阈值的划分结果采用数据分发方法分发到存储节点,具体 的,若所有存储节点为空,则将划分结果按其规模从大到小对应存储节点存储容量由小到 大放置;
[0015] 若存储节点非空,则根据划分结果的质心分发;若划分结果的质心不存在于任何 存储节点索引,则将划分结果分发至当前剩余容量最大的存储节点;若划分结果的质心存 在于多个存储节点索引,同样将划分结果分发至当前剩余容量最大的存储节点;若划分结 果的质心只存在于一个存储节点索引,则分发至该索引对应的存储节点。
[0016] 优选的,步骤(3)具体如下:
[0017] (3-1)对把进入到当前滑动窗口内的边数与预设阈值进行比较,判断滑动窗口是 否已满,若否,则进入步骤(3-2);若是,则进入步骤(3-7);
[0018] (3-2)根据队列里是否存在边判断顺序队列是否为空,若是,则进入步骤(3-3), 若否,则进入步骤(3-4);
[0019] (3-3)等待M秒后进入步骤(3-2);其中,M根据流式图数据到达的速度自定义,流 式图数据到达越快,M取值越小;
[0020] (3-4)判断队列中边数是否大于等于滑动窗口中剩余可容纳边数,若是则进入步 骤(3-5),否则进入步骤(3-6);
[0021] (3-5)将队列中的边填入滑动窗口,直到补全滑动窗口,进入步骤(3-7);
[0022] (3-6)将队列中边全部填入滑动窗口,进入步骤(3-7);
[0023] (3-7)计算各节点在当前滑动窗口内的局部入度值,并更新各节点全局入度值;
[0024] (3-8)根据入度值估算各节点PageRank值的第一组成部分;根据边权重占比计算 各节点PageRank值的第二组成部分;采用混合近似PageRank方法,结合PageRank值的第 一组成部分与PageRank值的第二组成部分,估算各节点当前PageRank值。
[0025] 优选的,步骤(3-8)中所述的混合近似PageRank方法具体如下:
[0026] (3-8-1)获取节点全局入度值,并根据以下式估算节点的PageRank值的第一部分 P(k):
[0027]
【主权项】
1. 一种可扩展的面向关联的流式图数据划分方法,其特征在于,具体包括以下步骤: (1) 以边为单位对流式图数据进行预处理:根据节点到达顺序对节点依次进行编号; 将节点的编号作为节点ID ; 其中,流式图数据包括源节点、目的节点和边上的权值;源节点和目的节点记录在同一 哈希字典文件中; (2) 将边加入先进先出队列;其中,边包括源节点ID、目的节点ID以及边上的权值; (3) 将先进先出队列中的边放入滑动窗口,直到进入到滑动窗口内的边数达到预设阈 值;获取与边对应的各源节点和目的节点的入度值,以及带权图中各边对应权值的比例,并 获取各节点的PageRank值;其中,阈值是指滑动窗口所能容纳的边数N的最大值; (4) 获取由滑动窗口内各边构成的流式图数据的子图,并获取所述子图的起始节点集 合;获取子图内每个节点对应的起始节点的集合S ;采用关联计算的方法处理所述集合S, 获取子图内各节点间的关联值Assc以及各节点的关联集合A ; (5) 采用近邻传播聚类算法对滑动窗口内所有节点进行聚类处理,获取质心;根据质 心的PageRank值将所述质心从小到大排序; (6) 采用关联聚类方法对滑动窗口内所有的节点进行划分,并多次迭代获取多个划分 结果;根据步骤(4)获得的各节点的起始节点集合将各划分结果扩充为完整的节点集合; 将规模小于阈值的划分结果对应的各边留于滑动窗口; (7) 将规模达到或超过阈值的划分结果采用数据分发方法分发到存储节点:若所有存 储节点为空,则将划分结果按其规模从大到小对应存储节点的存储容量从小到大放置; 若存储节点非空,则根据划分结果的质心分发,若划分结果的质心只存在于一个存储 节点索引,则分发至该索引对应的存储节点,若划分结果的质心不存在于任何存储节点索 引或存在于多个存储节点索引,则将划分结果分发至当前剩余容量最大的存储节点。
2. 如权利要求1所述的流式图数据划分方法,其特征在于,所述步骤(3)具体如下: (3-1)将进入到当前滑动窗口内的边数与预设阈值进行比较,判断滑动窗口是否已满, 若是,则进入步骤(3-7);若否,则进入步骤(3-2); (3-2)根据队列里是否存在边,判断顺序队列是否为空,若是,则进入步骤(3-
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1