HugeGraph入门

2019-01-28  本文已影响34人  王小冬

一、HugeGraph简介

最近在搞好友推荐方便的工作,选择了图数据的方法,使用并学习了HugeGraph,再次记录一下。

HugeGraph是百度在2018年中旬开源的一款图数据库(Graph Database)系统,可以存储海量的顶点(Vertex)和边(Edge)。实现了Apache ThinkerPop 3[1]框架,支持Gremlin图查询语言[2]。HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果。也可以再用户程序中调用hugeGraph API进行图分析或查询。

二、HugeGraph特性

HugeGraph支持在线及离线环境下的图操作,支持批量导入数据,支持高效的负责关联关系分析,并且能够与大数据平台无缝集成。

HugeGraph具备如下特点:

三、HugeGraph框架模块

总结:部署HugeGraph需要HugeGraph-Server,在网页上操作图需要HugeGraph-Studio,在java项目中操作图需要HugeGraph-Client,其他三个视情况需要的时候再部署使用。

四、HugeGraph安装部署

4.1 安装HugeGraph-Server(必须)

依赖:

JDK1.8

使用使用的是RocksDB存储则需要GCC >= 4.3.0 ,下面的步骤假设使用RocksDB作为存储

步骤1:

# 下载tar包
wget https://github.com/hugegraph/hugegraph/releases/download/v${version}/hugegraph-${version}.tar.gz
tar -zxvf hugegraph-${version}.tar.gz

步骤2:

修改 hugegraph.properties

backend=rocksdb
serializer=binary
rocksdb.data_path=.
rocksdb.wal_path=.

步骤3:

初始化数据库(仅第一次启动时需要)

cd hugegraph-${version}
bin/init-store.sh

步骤4:

启动server

bin/start-hugegraph.sh
Starting HugeGraphServer...
Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)....OK

步骤5:

查看服务状态:

jps
6475 HugeGraphServer
# curl请求restuflAPI,结果返回200,代表server启动正常
echo `curl -o /dev/null -s -w %{http_code} "http://localhost:8080/graphs/hugegraph/graph/vertices"`

步骤6:

# 停止server
$cd hugegraph-${version}
$bin/stop-hugegraph.sh

4.2 安装HugeGraph-Studio

步骤1:

# 下载tar包并解压
wget https://github.com/hugegraph/hugegraph-studio/releases/download/v${version}/hugegraph-studio-${version}.tar.gz
tar zxvf hugegraph-studio-${version}.tar.gz

步骤2:

修改配置文件hugegraph-studio.properties

# 启动HugeGraph-Studio
$ cd hugegraph-studio-${version}
$ bin/hugegraph-studio.sh

步骤3:

浏览器打开:http://localhost:8088即可访问。

五、HugeGraph,Neo4j,Titan三种图数据库性能对比

官网给了一个性能测试的报告:https://hugegraph.github.io/hugegraph-doc/performance/hugegraph-benchmark-0.5.6.html

总结起来就是:

当时选择HugeGraph的原因一是需求需要导大量的数据,涉及大约十几亿的插入,所以需要找一个插入性能高的,并且好友关系变动的时候也需要异步更新图关系。而是HugeGraph虽然是新秀,但是中文官方文档很简介清楚,利于学习使用。

参考:

https://hugegraph.github.io/hugegraph-doc/


  1. Apache ThinkerPop 3是图形数据库(OLTP)和图形分析系统(OLAP)的图形计算框架。

  2. Gremlin是Apache ThinkerPop框架下的图遍历语言,Gremlin是一种函数式数据流语言,可以使用户使用简洁的方式表述复杂的属性图的遍历或查询。

上一篇 下一篇

猜你喜欢

热点阅读