System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及图计算领域,尤其涉及一种面向分布式的图计算实现方法及系统。
技术介绍
1、近年来随着互联网时代的到来,人类拥有的数据量越来越庞大,普通的单机类型的图计算框架越来越难以处理这些数据,采用分布式计算框架越来越成为许多企业的首要选择,例如mapreduce、graphx等,这些计算框架有的不是为图数据格式专门研发计算的,所以在针对图领域计算的一些难题还没有被很好的解决,所以有时在计算速度上在某些特殊场景下表现的不是很好。
2、近些年来,也有许多优秀的图计算框架/计算模型被许多科研人员研发出来,比如说giraph,就是一个典型的分布式计算系统,其实现参照谷歌的pregel的论文而实现的,也被称之为编程模型,改编程模型采用bsp计算模式(bulk synchronous parallel),提倡”think like a vertex”的思想,该模型可以描述为”每一次计算有一系列的超步组成,每个超步又可以分为本地并发计算、全局通信、同步三个步骤“,该模式有点在于在执行本地计算时不产生任何的通信消耗,而且不需要做并发控制,但是同时bsp的缺点就是同步的时候开销大,如果负载不均衡的时候容易造成某一台计算节点执行慢,拖累整个超步的执行效率,pregel系统在图的划分上采用以点为中心的划分方式,该方式能够很好的把顶点划分到不同的计算节点上,顶点的边也会跟随边一起划分到该计算节点上,该情况如果图数据出现power law性质的话,该种计算划分方式计算时表现不是很好,可以想到,如果一顶点拥有上百万甚至千万条边,都被分配到同一
3、除了图划分这一难题,图数据的一些特点如访问的随机性,所以在提高cache的利用率对于图计算的效率提高有着关键的影响,还有由于海量的数据的存储,所以不可能把数据都存放在内存中,如果涉及到从磁盘或者其他存储介质读取数据,则需要提高读取数据速度,避免随机访问存储介质。
技术实现思路
1、为了解决上述问题,本专利技术提出了一种面向分布式的图计算实现方法及系统。
2、具体方案如下:
3、一种面向分布式的图计算实现方法,包括以下步骤:
4、s1:获取待分析数据对应的图格式数据,并提取其中包含的各顶点和各顶点之间的关系数据;
5、s2:基于各顶点和各顶点之间的关系数据,对图格式数据进行数据分区处理;在数据分区中首先采用边切分的方式进行一次分区,之后判断每个一次分区结果中包含的边的数量是否大于预设的数量阈值,如果是,采用点切分的方式对一次分区结果进行二次分区;
6、s3:将图格式数据对应的所有分区结果映射至分布式系统中的各计算节点上,并将分区结果和映射关系发送至各计算节点;
7、s4:计算节点对收到的各分区结果通过gas计算模型进行计算,在对每个分区结果计算至gatter阶段时,判断该分区结果是否为进行了二次分区的分区结果,如果是,则在gatter阶段计算完成时,判断与该分区结果属于同一个一次分区结果的其他二次分区结果映射的计算节点中,其他二次分区结果的gatter阶段是否计算完成,如果计算完成,则拉取其他二次分区结果的gatter阶段计算结果与该分区结果的gatter阶段计算结果进行合并,并将合并结果同步至其他二次分区结果映射的计算节点,使得在apply阶段基于该合并结果进行顶点数据的更新;如果未计算完成,则等待其他计算节点同步的合并结果。
8、进一步的,步骤s3中将分区结果发送至各计算节点的方法为:为每个计算节点构建一缓冲区,根据映射关系将分区结果写入各计算节点的缓冲区内;实时判断各缓冲区中存入的数据量是否达到缓冲区大小限制,如果是,通知缓冲区对应的计算节点,计算节点接收到通知后,将缓冲区内的数据拉取至计算节点内。
9、进一步的,将分区结果写入缓冲区时按照顶点的编号顺序依次写入各缓冲区。
10、进一步的,在缓冲区中的数据被拉取之前对待拉取的数据进行压缩操作。
11、进一步的,计算节点拉取数据后,将拉取的数据存储到该计算节点的内存或者分块磁盘中。
12、一种面向分布式的图计算实现系统,包括终端设备和分布式系统下的计算节点,所述系统实现本专利技术实施例上述的方法的步骤。
13、本专利技术采用如上技术方案,解决了现有技术中对超大规模的图结构的数据处理速度慢的问题。
本文档来自技高网...【技术保护点】
1.一种面向分布式的图计算实现方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向分布式的图计算实现方法,其特征在于:步骤S3中将分区结果发送至各计算节点的方法为:为每个计算节点构建一缓冲区,根据映射关系将分区结果写入各计算节点的缓冲区内;实时判断各缓冲区中存入的数据量是否达到缓冲区大小限制,如果是,通知缓冲区对应的计算节点,计算节点接收到通知后,将缓冲区内的数据拉取至计算节点内。
3.根据权利要求2所述的面向分布式的图计算实现方法,其特征在于:将分区结果写入缓冲区时按照顶点的编号顺序依次写入各缓冲区。
4.根据权利要求2所述的面向分布式的图计算实现方法,其特征在于:在缓冲区中的数据被拉取之前对待拉取的数据进行压缩操作。
5.根据权利要求2所述的面向分布式的图计算实现方法,其特征在于:计算节点拉取数据后,将拉取的数据存储到该计算节点的内存或者分块磁盘中。
6.一种面向分布式的图计算实现系统,其特征在于:包括终端设备和分布式系统下的计算节点,所述系统实现如权利要求1~5中任一所述方法。
【技术特征摘要】
1.一种面向分布式的图计算实现方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向分布式的图计算实现方法,其特征在于:步骤s3中将分区结果发送至各计算节点的方法为:为每个计算节点构建一缓冲区,根据映射关系将分区结果写入各计算节点的缓冲区内;实时判断各缓冲区中存入的数据量是否达到缓冲区大小限制,如果是,通知缓冲区对应的计算节点,计算节点接收到通知后,将缓冲区内的数据拉取至计算节点内。
3.根据权利要求2所述的面向分布式的图计算实现方法,其特征在于:...
【专利技术属性】
技术研发人员:徐佳吉,洪万福,朱成忠,钱智毅,
申请(专利权)人:厦门渊亭信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。