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

基于负载均衡的知识图谱分布式海量数据导入方法技术

技术编号:32962932 阅读:15 留言:0更新日期:2022-04-09 10:56
本发明专利技术涉及一种基于负载均衡的知识图谱分布式海量数据导入方法,属于知识图谱数据导入技术领域,所述方法包括以下步骤:S1、搭建Spark分布式计算集群;S2、解决Janusgraph与Spark的jar包依赖冲突和版本冲突,使用SparkGraphComputer接口进行连接测试;S3、调研Spark进行图数据批量导入作业所擅长处理的输入文件格式,按照所述文件格式生成数据;S4、根据数据导入完整性和数据导入速度调整对Spark集群worker节点的资源分配,优化导入速度;S5、对数据中的超级节点进行切分和负载均衡,加速对超级节点数据的导入。本发明专利技术提供的方法通过分布式计算能够大幅度提升数据导入效率,通过基于节点切分的负载均衡方法使得对于超级节点数据导入实现并行化,最终达到对于超级节点数据的高效导入。超级节点数据的高效导入。超级节点数据的高效导入。

【技术实现步骤摘要】
基于负载均衡的知识图谱分布式海量数据导入方法


[0001]本专利技术属于知识图谱数据导入
,具体涉及一种基于负载均衡的知识图谱分布式海量数据导入方法。

技术介绍

[0002]图数据库(graph database,GDB)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。图数据库是一种非关系型数据库,以解决现有关系数据库的局限性。尤其对于关系型数据库在大多数应用场景下(比如:查找用户朋友的朋友)需要进行复杂的多表联查操作。大量的多表联查操作,当表格中记录很多时,关系数据库计算量巨大,难以实时响应。而图数据库将关系建模为数据,以多跳查询取代了多表联查操作,大大提升了查询效率。
[0003]具有代表性的图数据库包括Neo4j、Dgraph、Janusgraph等。其中Neo4j图数据库是开源NoSQL数据库,原生的图数据库,2003年开始开发,使用scala和java语言,2007年开始发布,是世界上最先进的图数据库之一。Neo4j图数据库资料丰富、既支持OLAP(联机分析处理),也支持OLTP(联机事务处理),并且Neo4j官方也同时开发了非常美观的可视化界面,方便调试。
[0004]然而,Neo4j虽然方便易用,但是Neo4j只支持单机系统,而现实世界中,随着固网宽带、移动互联网、物联网等的快速发展,数据正呈爆炸式增长,我们构建领域知识图谱工具的初衷也是为了融合多领域的异构数据,必然会对领域知识图谱工具在海量数据的存储与检索方面带来巨大挑战。在大数据时代的背景下,诸如Janusgraph这样的分布式图数据库受到了工业界的青睐,对于Janusgraph图数据库进行海量数据的导入进行图谱构建,一般采用如下几种方案:
[0005](1)第一种方案是将对源数据插入操作转化为Janusgraph的gremlin查询语言进行逐条导入。
[0006](2)第二种方案是使用针对嵌入式Janusgraph的工具——Janusgraph

csv

loader对Janusgraph进行海量数据导入。
[0007](3)第三种方案是基于存储后端Cassandra的工具——Janusgraph

util对存储后端为Casandra的Janusgraph数据库进行海量数据导入。
[0008]对于第一种Janusgraph数据导入方案,会有效率极低的问题,对于亿级别数据的导入甚至要花费若干天的时间,无法应对很多应用场景中海量数据井喷的需求;对于第二种数据导入方案,嵌入式Janusgraph是从基于JVM的用户应用程序中打开嵌入式JanusGraph图实例。在这种情况下,JanusGraph是用户应用程序的一部分,应用程序一旦关闭,图实例也会被删除,不能实现数据持久化;对于第三种数据导入方案,主要针对Janusgraph存储后端Cassandra以批量写SSTable的方式进行数据导入,然而Janusgraph支持的存储后端除了Cassandra以外还支持HBase、BerkleyDB等,其中HBase作为Apache的顶
级项目,为海量数据的存储提供了高可靠性、高性能、列存储、可伸缩、实时读写的基础,具有很广泛的应用,然而第三种方案并不能对HBase等所有存储后端进行支持。并且上述三种方案均没有考虑超级节点无法拆分,难以并行,从而降低数据导入性能的影响。所以,需要有能够缓解超级节点对于导入性能影响的知识图谱分布式海量数据导入方法和系统。

技术实现思路

[0009]为解决现有技术存在的缺陷,本专利技术的目的在于提供一种基于负载均衡的知识图谱分布式海量数据导入方法及系统,能够通过分布式计算大幅度提升数据导入效率,通过基于节点切分的负载均衡方法使得对于超级节点数据导入实现并行化,最终达到对于超级节点数据的高效导入的目的。
[0010]为达到以上目的,本专利技术采用的一种技术方案是:
[0011]一种基于负载均衡的知识图谱分布式海量数据导入方法,包括以下步骤:
[0012]S1、搭建Spark分布式计算集群;
[0013]S2、解决Janusgraph与Spark的jar包依赖冲突和版本冲突,使用SparkGraphComputer接口进行连接测试;
[0014]S3、调研Spark进行图数据批量导入作业所擅长处理的输入文件格式,按照所述文件格式生成数据;
[0015]S4、根据数据导入完整性和数据导入速度调整对Spark集群worker节点的资源分配,优化导入速度;
[0016]S5、对数据中的超级节点进行切分并且进行负载均衡,加速对超级节点数据的导入。
[0017]进一步,如上所述的基于负载均衡的知识图谱分布式海量数据导入方法,步骤S1中搭建Spark分布式计算集群的具体步骤包括:
[0018]S11、安装Hbase、ES、Spark、Janusgraph、HDFS和yarn数据库的镜像;
[0019]S12、创建docker网络,分布式集群的所有容器运行在同一所述docker网络下;
[0020]S13、编写docker

compose.yml文件,配置好容器启动的依赖顺序,并且通过docker

compose技术搭建整个服务。
[0021]进一步,如上所述的基于负载均衡的知识图谱分布式海量数据导入方法,步骤S2的具体步骤包括:
[0022]用户通过SparkGraphComputer提交OLAP请求和BulkLoaderVertexProgram;
[0023]Apache Tinkerpop将用户提交的所述OLAP请求以及BulkLoaderVertexProgram转化成Spark数据处理语言并提交到Spark执行;
[0024]修改配置文件使得Spark能够使用Janusgraph lib文件夹中的jar包,从而解决Janusgraph与Spark的jar包依赖冲突和版本冲突;
[0025]使用SparkGraphComputer接口进行连接测试。
[0026]进一步,如上所述的基于负载均衡的知识图谱分布式海量数据导入方法,步骤S3中所述文件格式为GraphSon,存储方式为邻接表。
[0027]再进一步,如上所述的基于负载均衡的知识图谱分布式海量数据导入方法,在所述邻接表中,每个顶点本质上是文件中的一行,且顶点行包含与所述顶点关联的所有边的
列表以及顶点的所有属性。
[0028]进一步,如上所述的基于负载均衡的知识图谱分布式海量数据导入方法,步骤S4的具体步骤包括:
[0029]S41、增加executor的数量,从而提高Application并行执行Task的能力;
[0030]S42、增加每个executor的cpu本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于负载均衡的知识图谱分布式海量数据导入方法,包括以下步骤:S1、搭建Spark分布式计算集群;S2、解决Janusgraph与Spark的jar包依赖冲突、版本冲突,使用SparkGraphComputer接口进行连接测试;S3、调研Spark进行图数据批量导入作业所擅长处理的输入文件格式,按照所述文件格式生成数据;S4、根据数据导入完整性和数据导入速度调整对Spark集群worker节点的资源分配,优化导入速度;S5、对数据中的超级节点进行切分并且进行负载均衡,加速对超级节点数据的导入。2.根据权力要求1所述的基于负载均衡的知识图谱分布式海量数据导入方法,其特征在于,步骤S1中搭建Spark分布式计算集群的具体步骤包括:安装Hbase、ES、Spark、Janusgraph、HDFS和yarn数据库的镜像;创建docker网络,分布式集群的所有容器运行在同一所述docker网络下;编写docker

compose.yml文件,配置好容器启动的依赖顺序,并且通过docker

compose技术搭建整个服务。3.根据权力要求2所述的基于负载均衡的知识图谱分布式海量数据导入方法,其特征在于,步骤S2的具体步骤包括:用户通过SparkGraphComputer提交OLAP请求和BulkLoaderVertexProgram;Apache Tinkerpop将用户提交的所述OLAP请求和BulkLoaderVertexProgram转化成Spark数据处理语言并提交到Spark执行;修改配置文件使得Spark能够使用...

【专利技术属性】
技术研发人员:王亚沙赵俊峰徐涌鑫杨恺单中原王子健尹思菁
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1