HugeGraph简介及部署
Welcome to HugeGraph
Summary
HugeGraph是⼀款易⽤、⾼效、通⽤的开源图数据库系统(Graph Database,),实现了框架及完全兼容查询语⾔,具备完善的⼯具链组件,助⼒⽤户轻松构建基于图数据库之上的应⽤和产品。HugeGraph⽀持百亿以上的顶点和边快速导⼊,并提供毫秒级的关联关系查询能⼒(OLTP),并可与Hadoop、Spark等⼤数据平台集成以进⾏离线分析(OLAP)。
HugeGraph典型应⽤场景包括深度关系探索、关联分析、路径搜索、特征抽取、数据聚类、社区检测、 知识图谱等,适⽤业务领域有如⽹络安全、电信、⾦融风控、⼴告推荐、社交⽹络和智能机器⼈等。
本系统的主要应⽤场景是解决百度安全事业部所⾯对的反欺诈、威胁情报、⿊产打击等业务的图数据存储和建模分析需求,在此基础上逐步扩展及⽀持了更多的通⽤图应⽤。
Features
HugeGraph⽀持在线及离线环境下的图操作,⽀持批量导⼊数据,⽀持⾼效的复杂关联关系分析,并且能够与⼤数据平台⽆缝集成。HugeGraph⽀持多⽤户并⾏操作,⽤户可输⼊Gremlin查询语句,并及时得到图查询结果,也可在⽤户程序中调⽤HugeGraph API进⾏图分析或查询。
本系统具备如下特点:
易⽤:HugeGraph⽀持Gremlin图查询语⾔与Restful API,同时提供图检索常⽤接⼝,具备功能齐全的周边⼯具,轻松实现基于图的各种查询分析运算。
⾼效:HugeGraph在图存储和图计算⽅⾯做了深度优化,提供多种批量导⼊⼯具,轻松完成百亿数据快速导⼊,通过优化过的查询达到图检索的毫秒级响应。⽀持数千⽤户并发的在线实时操作。
通⽤:HugeGraph⽀持Apache Gremlin标准图查询语⾔和Property Graph标准图建模⽅法,⽀持基于图的OLTP和OLAP⽅案。集成Apache Hadoop及Apache Spark⼤数据平台。
可扩展:⽀持分布式存储、数据多副本及横向扩容,内置多种后端存储引擎,也可插件式轻松扩展后端存储引擎。
开放:HugeGraph代码开源(Apache 2 License),客户可⾃主修改定制,选择性回馈开源社区。
本系统的功能包括但不限于:
⽀持从TXT、CSV、JSON等格式的⽂件中批量导⼊数据
具备可视化操作界⾯,降低⽤户使⽤门槛
优化的图接⼝:最短路径(Shortest Path)、K步连通⼦图(K-neighbor)、K步到达邻接点(K-out)等
基于Apache TinkerPop3框架实现,⽀持Gremlin图查询语⾔
⽀持属性图,顶点和边均可添加属性,⽀持丰富的属性类型
具备独⽴的Schema元数据信息,⽅便第三⽅系统集成
⽀持多顶点ID策略:⽀持主键ID、⽀持⾃动⽣成ID、⽀持⽤户⾃定义字符串ID、⽀持⽤户⾃定义数字ID
可以对边和顶点的属性建⽴索引,⽀持精确查询、范围查询、全⽂检索
存储系统采⽤插件⽅式,⽀持RocksDB、Cassandra、ScyllaDB、HBase、Palo、MySQL以及InMemory等
与Hadoop、Spark GraphX等⼤数据系统集成,⽀持Bulk Load操作
Modules
: HugeGraph-Server是HugeGraph项⽬的核⼼部分,包含Core、Backend、API等⼦模块;
Core:图引擎实现,向下连接Backend模块,向上⽀持API模块;
Backend:实现将图数据存储到后端,⽀持的后端包括:Memory、Cassandra、ScyllaDB、RocksDB、HBase及MySQL,⽤户根据实际情况选择⼀种即可;
源代码下载开源社区API:内置REST Server,向⽤户提供RESTful API,同时完全兼容Gremlin查询。
:HugeGraph-Client提供了RESTful API的客户端,⽤于连接HugeGraph-Server,⽬前仅实现Java版,其他语⾔⽤户可⾃⾏实现;
:HugeGraph-Loader是基于HugeGraph-Client的数据导⼊⼯具,将普通⽂本数据转化为图形的顶点和边并插⼊图形数据库中;
:HugeGraph-Spark能在图上做并⾏计算,例如PageRank算法等;
:HugeGraph-Studio是HugeGraph的Web可视化⼯具,可⽤于执⾏Gremlin语句及展⽰图;
HugeGraph-Tools是HugeGraph的部署和管理⼯具,包括管理图、备份/恢复、Gremlin执⾏等功能。
Download HugeGraph
Latest version
The latest HugeGraph: 0.9.2 , released on 2019-04-19 .
components description download
HugeGraph-Server HugeGraph的主程序
HugeGraph-Studio基于Web的图形化展⽰⼯具
HugeGraph-Loader数据导⼊⼯具
HugeGraph-Tools命令⾏⼯具集
HugeGraph-Spark基于Spark GraphX的图分析⼯具
Versions mapping
server client loader studio spark common tools
1.4.0
1.3.12
Release Notes
2019-04-19: Release HugeGraph 0.9.2,see
2018-11-23: Release HugeGraph 0.8.0,see
2018-07-30: Release HugeGraph 0.7.4,see
2018-06-01: Release HugeGraph 0.6.1,see
2018-03-29: Release HugeGraph 0.5.6,see
2018-01-12: Release HugeGraph 0.4.4,see
2017-11-06: Release HugeGraph 0.3.3,see
2017-09-08: Release HugeGraph 0.2.4,see
2017-08-15: Release HugeGraph 0.2,see
HugeGraphServer Quick Start
1 概述
HugeGraph-Server 是HugeGraph 项⽬的核⼼部分,包含Core、Backend、API等⼦模块。
Core模块是Tinkerpop接⼝的实现,Backend模块⽤于管理数据存储,⽬前⽀持的后端包括:Memory、Cassandra、ScyllaDB以及RocksDB,API模块提供HTTP Server,将Client的HTTP请求转化为对Core的调⽤。
⽂档中会⼤量出现HugeGraph-Server及HugeGraphServer这两种写法,其他组件也类似。这两种写法含义上并⽆⼤的差异,可以这么区分:HugeGraph-Server表⽰服务端相关组件代码,HugeGraphServer表⽰服务进程。
2 依赖
2.1 安装JDK-1.8
HugeGraph-Server 基于jdk-1.8开发,代码⽤到了较多jdk-1.8中的类和⽅法,请⽤户⾃⾏安装配置。
在往下阅读之前务必执⾏java -version命令查看jdk版本
java -version
2.2 安装GCC-4.
3.0(GLIBCXX_3.
4.10)或更新版本(可选)
如果使⽤的是RocksDB后端,请务必执⾏gcc --version命令查看gcc版本;若使⽤其他后端,则不需要。
gcc --version
3 部署
有三种⽅式可以部署HugeGraph-Server组件:
⽅式1:⼀键部署
⽅式2:下载tar包
⽅式3:源码编译
3.1 ⼀键部署
HugeGraph-Tools提供了⼀键部署的命令⾏⼯具,⽤户可以使⽤该⼯具快速地⼀键下载、解压、配置并启动HugeGraphServer和HugeGraphStudio。当然,还是得先下载HugeGraph-Tools的tar包。
wget github/hugegraph/hugegraph-tools/releases/download/v${version}/hugegraph-tools-${version}.
tar -zxvf hugegraph-tools-${version}.
cd hugegraph-tools-${version}
注:${version}为版本号,最新版本号可参考,或直接从Download页⾯点击链接下载
HugeGraph-Tools的总⼊⼝脚本是bin/hugegraph,⽤户可以使⽤help⼦命令查看其⽤法,这⾥只介绍⼀键部署的命令。
bin/hugegraph deploy -v {hugegraph-version} -p {install-path} [-u {download-path-prefix}]
{hugegraph-version}表⽰要部署的HugeGraphServer及HugeGraphStudio的版本,⽤户可查看conf/version-mapping.yaml⽂件获取版本信息,{install-path}指定HugeGraphServer及HugeGraphStudio的安装⽬录,{download-path-prefix}可选,指定HugeGraphServer及HugeGraphStudio tar包的下载地址,不提供时使⽤默认下载地址,⽐如要启动0.6版本的HugeGraph-Server及HugeGraphStudio将上述命令写为bin/hugegraph deploy -v 0.6 -p services即可。
3.2 下载tar包
wget github/hugegraph/hugegraph/releases/download/v${version}/hugegraph-${version}.
tar -zxvf hugegraph-${version}.
3.3 源码编译
下载HugeGraph源代码
git clone github/hugegraph/hugegraph.git
编译打包⽣成tar包
cd hugegraph
mvn package -DskipTests
执⾏⽇志如下:
......
[INFO] Reactor Summary:
[INFO]
[INFO] hugegraph .......................................... SUCCESS [  0.003 s]
[INFO] hugegraph-core ..................................... SUCCESS [ 15.335 s]
[INFO] hugegraph-api ...................................... SUCCESS [  0.829 s]
[INFO] hugegraph-cassandra ................................ SUCCESS [  1.095 s]
[INFO] hugegraph-scylladb ................................. SUCCESS [  0.313 s]
[INFO] hugegraph-rocksdb .................................. SUCCESS [  0.506 s]
[INFO] hugegraph-mysql .................................... SUCCESS [  0.412 s]
[INFO] hugegraph-palo ..................................... SUCCESS [  0.359 s]
[INFO] hugegraph-dist ..................................... SUCCESS [  7.470 s]
[INFO] hugegraph-example .................................. SUCCESS [  0.403 s]
[INFO] hugegraph-test ..................................... SUCCESS [  1.509 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
......
执⾏成功后,在hugegraph⽬录下⽣成hugegraph-*. ⽂件,就是编译⽣成的tar包。
4 配置
如果需要快速启动HugeGraph仅⽤于测试,那么只需要进⾏少数⼏个配置项的修改即可。详细的配置介绍请参考及
5 启动
启动分为"⾸次启动"和"⾮⾸次启动",这么区分是因为在第⼀次启动前需要初始化后端数据库,然后启动服务。⽽在⼈为停掉服务后,或者其他原因需要再次启动服务时,因为后端数据库是持久化存在的,直接启动服务即可。
HugeGraphServer启动时会连接后端存储并尝试检查后端存储版本号,如果没有初始化过后端或者后端初始化版本不对(旧版本初始化过)时,HugeGraphServer会启动失败,并给出错误信息。
由于各种后端所需的配置(hugegraph.properties)及启动步骤略有不同,下⾯逐⼀对各后端的配置及启动做介绍。
5.1 Memory
修改hugegraph.properties
backend=memory
serializer=text
Memory后端的数据是保存在内存中⽆法持久化的,不需要初始化后端,这也是唯⼀⼀个不需要初始化的后端。
启动server
bin/start-hugegraph.sh
Connecting to HugeGraphServer (127.0.0.1:8080/graphs)....OK
提⽰的url 与rest-server.properties 中配置的restserver.url ⼀致
5.2 RocksDB
RocksDB是⼀个嵌⼊式的数据库,不需要⼿动安装部署, 要求GCC 版本>= 4.3.0(GLIBCXX_3.4.10),如不满⾜,需要提前升级GCC
修改hugegraph.properties
backend=rocksdb
serializer=binary
rocksdb.data_path=.
rocksdb.wal_path=.
初始化数据库(仅第⼀次启动时需要)
cd hugegraph-${version}
bin/init-store.sh
启动server
bin/start-hugegraph.sh
Connecting to HugeGraphServer (127.0.0.1:8080/graphs)....OK
5.3 Cassandra
⽤户需⾃⾏安装Cassandra,要求版本3.0以上,
修改hugegraph.properties

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。