基于图计算的大数据处理方法和装置的制造方法

文档序号:9471364阅读:232来源:国知局
基于图计算的大数据处理方法和装置的制造方法
【技术领域】
[0001] 本发明实施例涉及数据处理技术,尤其涉及一种基于图计算的大数据处理方法和 装置。
【背景技术】
[0002] 当前,大数据问题(bigdataproblem)是信息科学技术领域的最前沿最受关注的 课题之一,随着物联网、移动互联网、云计算以及各种数据自动采集技术的迅猛发展,许多 机构或公司在迅速积累着大量的数据,比如客户有关的商业数据。同时,许多企业也已经 开始组建和运作专门的大数据分析团队,以通过分析挖掘这些商业数据,及时发现新的市 场机会或商业模式。现有技术中,大数据处理可以使用基于图计算的方式来进行,其基本 思路是将要处理的大数据表示成实体-关系(E/Rmodel)形式的图计算模型,即采用顶点 (vertex)存储顶点值,采用边(edge)表示顶点之间的关系;例如,对于矩阵因子分解算法, 其图计算模型的顶点是一位用户或某个物品,边就是该用户对物品的评价关系。
[0003]GrahpChi是目前被普遍采用的一种基于图计算的大数据处理方法,该方式将顶点 值同时存储在顶点和边上,即将本身属于顶点V的值V.value,同时存储在图模型中的顶点 V以及该V的出边上(出边即从V发出的指向其他顶点的边),那么假设V的出边的数目是 degree+(V),那么需要将V.value复制degree+(V)份分别存储到各出边中。但是,GrahpChi 在磁盘的数据存储方式是按边存储的滑动窗口机制,将用于存储数据的磁盘分成了P个数 据分片,每个数据分片存储某顶点以及该顶点的所有入边(比如,顶点V的入边即从其他顶 点指向V的边),而该顶点的出边存储在其他数据分片中。那么数据处理中更新的顶点值 V.value,既要在该顶点V所在的数据分片中更新,又要将该V.value复制degree+(V)份同 步更新到其他数据分片中存储的顶点V的出边上,这个过程必然会带来额外的磁盘访问开 销,使得大数据的处理速度较慢。

【发明内容】

[0004] 本发明实施例提供一种基于图计算的大数据处理方法和装置,以减少基于图计算 的数据处理过程中的磁盘I/O开销,提高数据处理速度。
[0005] 第一方面,本发明实施例提供一种基于图计算的大数据处理方法,所述方法应用 于大数据处理系统,所述大数据处理系统包括至少一个计算节点;所述计算节点存储有基 于大数据构造的图计算模型,其中所述图计算模型包括:多个顶点以及用于表示顶点之间 关系的至少一个边;所述边存储在所述计算节点的第一磁盘文件中,所述顶点对应的顶点 值存储在所述计算节点的堆向量中,其中,所述堆向量是具有向量数据结构的数据库堆文 件,并且所述图计算模型的顶点值中待执行读或写操作的目标顶点值存储于所述堆向量的 缓存中;所述方法包括:
[0006] 所述计算节点从所述第一磁盘文件获取所述图计算模型的边;
[0007] 所述计算节点从所述堆向量中读取所述图计算模型的顶点值;
[0008] 所述计算节点运行数据处理算法对所述边和顶点值进行处理,以得到更新的顶点 值,并将所述更新的顶点值存储至所述堆向量。
[0009] 结合第一方面,在第一种可能的实现方式中,所述堆向量包括所述缓存以及第二 磁盘文件;所述图计算模型的顶点值具体存储于所述第二磁盘文件中;所述从堆向量中读 取所述图计算模型的顶点值,包括:从所述堆向量的缓存中读取所述顶点值中的目标顶点 值;所述将所述更新的顶点值存储至所述堆向量,包括:采用所述更新的顶点值替换所述 缓存中的所述目标顶点值,以使得所述堆向量根据所述缓存中存储的所述更新的顶点值更 新所述第二磁盘文件中对应的顶点值。
[0010] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述从 堆向量中读取所述图计算模型的顶点值之前,还包括:将所述顶点值存储至所述第二磁盘 文件。
[0011] 结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将所 述顶点值存储至所述第二磁盘文件,包括:根据顶点值的类型以及所述第二磁盘文件中单 个页面的空间,确定单页面顶点值数目,所述单页面顶点值数目用于表示单个所述页面最 多存储的顶点值数目;根据待存储的所述顶点值的总数目以及所述单页面顶点值数目,得 到存储所述顶点值所需的文件页面数;根据所述文件页面数,分配用于存储所述顶点值的 连续的所述文件页面,并将用于表示所述文件页面是否被分配的标识设置为已分配,所述 标识位于所述第二磁盘文件中;将所述顶点值存储至所述第二磁盘文件中的所述文件页 面。
[0012] 结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述从所 述堆向量的缓存中读取所述顶点值中的目标顶点值,包括:根据用于标识所述目标顶点值 的顶点值索引、所述单页面顶点值数目以及分配的所述文件页面中的首页面,确定所述目 标顶点值所在的目标文件页面、以及所述目标顶点值在所述目标文件页面中的目标位置; 根据所述目标位置得到所述目标顶点值。
[0013] 结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,根据所述 目标位置得到所述目标顶点值,包括:根据所述堆向量的缓存中的缓存页面与所述第二磁 盘文件中的文件页面之间的映射关系,确定所述缓存中是否存在与所述目标文件页面对应 的缓存页面;若所述缓存中存在与所述目标文件页面对应的第一缓存页面,则从所述第一 缓存页面中与所述目标位置对应的位置,获取所述目标顶点值。
[0014] 结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,还包括:若 所述堆向量的所述缓存中不存在与所述目标文件页面对应的缓存页面,且所述缓存中包括 空闲的缓存页面,则建立所述第二磁盘文件中的所述目标文件页面与空闲的第二缓存页面 之间的映射关系,并将所述目标文件页面中存储的顶点值读入所述第二缓存页面;从所述 第二缓存页面中与所述目标位置对应的位置,获取所述目标顶点值。
[0015] 结合第一方面的第五种或第六种可能的实现方式,在第七种可能的实现方式中, 还包括:若所述堆向量的所述缓存中不存在与所述目标文件页面对应的缓存页面,且所述 缓存中不包括空闲的缓存页面,则从缓存中获取第三缓存页面,将所述第三缓存页面存储 的顶点值删除;并建立所述第二磁盘文件中的所述目标文件页面与所述第三缓存页面之间 的映射关系,将所述目标文件页面中存储的顶点值读入所述第三缓存页面;从所述第三缓 存页面中与所述目标位置对应的位置,获取所述目标顶点值。
[0016] 结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,在将所述 第三缓存页面存储的顶点值删除之前,还包括:若所述第三缓存页面具有已更改标识,所述 已更改标识用于表示所述第三缓存页面中存储的顶点值已被更新,则将所述第三缓存页面 中存储的所述顶点值写入所述第二磁盘文件中对应的文件页面。
[0017] 第二方面,本发明实施例提供一种基于图计算的大数据处理装置,所述装置存储 有基于大数据构造的图计算模型,所述图计算模型包括:多个顶点以及用于表示顶点之间 关系的至少一个边;所述边存储在所述大数据处理装置的第一磁盘文件中,所述顶点对应 的顶点值存储在所述大数据处理装置的堆向量中,所述堆向量是具有向量数据结构的数据 库堆文件,并且所述图计算模型的顶点值中待执行读或写操作的目标顶点值存储于所述堆 向量的缓存中;所述大数据处理装置包括:
[0018] 第一读取单元,用于从所述第一磁盘文件获取所述图计算模型的边;
[0019] 第二读取单元,用于从所述堆向量中读取所述图计算模型的顶点值;
[0020] 处理单元,用于运行数据处理算法对所述边和顶点值进行处理,以得到更新的顶 点值,并将所述更新的顶点值存储至所述堆向量。
[0021] 结合第二方面,在第一种可能的实现方式中,所述堆向量包括所述缓存以及第二 磁盘文件;所述图计算模型的顶点值具体存储于所述第二磁盘文件中;所述第二读取单 元,具体用于从所述堆向量的缓存中读取所述顶点值中的目标顶点值;所述处理单元,具体 用于采用所述更新的顶点值替换所述缓存中的所述目标顶点值,以使得所述堆向量根据所 述缓存中存储的所述更新的顶点值更新所述第二磁盘文件中对应的顶点值。
[0022] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:存 储单元,用于将所述顶点值存储至所述第二磁盘文件。
[0023] 结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述存储 单元包括:顶点数目确定单元,用于根据顶点值的类型以及所述第二磁盘文件中单个页面 的空间,确定单页面顶点值数目,所述单页面顶点值数目用于表示单个所述页面最多存储 的顶点值数目;页面数目确定单元,根据待存储的所述顶点值的总数目以及所述单页面顶 点值数目,得到存储所述顶点值所需的文件页面数;标识设置单元,用于根据所述文件页面 数,分配用于存储所述顶点值的连续的所述文件页面,并将用于表示所述文件页面是否被 分配的标识设置为已分配,所述标识位于所述第二磁盘文件中;顶点值存储单元,用于将所 述顶点值存储至所述第二磁盘文件中的所述文件页面。
[0024] 结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二 读取单元包括:位置确定单元,用于根据用于标识所述目标顶点值的顶点值索引、所述单页 面顶点值数目以及分配的所述文件页面中的首页面,确定所述目标顶点值所在的目标文件 页面、以及所述目标顶点值在所述目标文件页面中的目标位置;获取单元,用于根据所述目 标位置得到所述目标顶点值。
[0025] 结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述获取 单元,具体用于根据所述堆向量的缓存中的缓存页面与所述第二磁盘文件中的文件页面之 间的映射关系,确定所述缓存中是否存在与所述目标文件页面对应的缓存页面;若所述缓 存中存在与所述目标文件页面对应的第一缓存页面,则从所述第一缓存页面中与所述目标 位置对应的位置,获取所述目标顶点值。
[0026] 结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述获取 单元,还用于若所述堆向量的所述缓存中不存在与所述目标文件页面对应的缓存页面,且 所述缓存中包括空闲的缓存页面,则建立所述第二磁盘文件中的所述目标文件页面与空闲 的第二缓存页面之间的映射关系,并将所述目标文件页面中存储的顶点值读入所述第二缓 存页面;从所述第二缓存页面中与所述目标位置对应的位置,获取所述目标顶点值。
[0027] 结合第二方面的第五种或第六种可能的实现方式,在第七种可能的实现方式中, 所述获取单元,还用于若所述堆向量的所述缓存中不存在与所述目标文件页面对应的缓存 页面,且所述缓存中不包括空闲的缓存页面,则从缓存中获取第
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1