背景
Gremlin是Apache TinkerPop框架下实现的图遍历语言,支持OLTP与OLAP,是目前图数据库领域主流的查询语言,可类比SQL语言之于关系型数据库。
HugeGraph是国内的一款开源图数据库,完全支持Gremlin语言。本文将讲述如何基于HugeGraph搭建一个执行Gremlin的图形化环境。
HugeGraph的github仓库下有很多子项目,我们这里只需要使用其中的两个:hugegraph
和hugegraph-studio
。
部署HugeGraphServer
准备安装包
方式一:源码编译打包
进入hugegraph项目,克隆代码库
进入终端
$ git clone git@github.com:hugegraph/hugegraph.git
完成后会在当前目录下多出来一个hugegraph
的子目录,不过这个目录里面的文件是源代码,我们需要编译打包才能生成可以运行包。
进入hugegraph
目录,执行命令:
$ git checkout release-0.7
$ mvn package -DskipTests
注意:一定要先切换分支,hugegraph主分支上版本已经升级到
0.8.0
了,但是studio似乎还没有升级,为避免踩坑我们还是使用已发布版。
经过一长串的控制台输出后,最后如果能看到BUILD SUCCESS
表示打包成功。
这时会在当前目录下多出来一个子目录
hugegraph-0.7.4
和一个压缩包hugegraph-0.7.4.tar.gz
,这就是我们即将要使用可以运行的包。
本人有轻微强迫症,不喜欢源代码和二进制包放在一起,容易混淆,所以把hugegraph-0.7.4
拷到上一层目录,然后删除源代码目录,这样上层目录又回归清爽了。
$ mv hugegraph-0.7.4 ../hugegraph-0.7.4
$ cd ..
$ rm -rf hugegraph
到这儿安装包就准备好了。不过,这样操作是需要你本地装了jdk
、git
和maven
命令行工具的,如果你没有安装也没关系,我们还可以直接下载hugegraph
官方的release
包。
方法二:直接下载release
包
点击github
代码的上面的导航releases
可以看到hugegraph目前有两个release,点击hugegraph-0.7.4.tar.gz
就开始下载了。
下载完之后解压即可
$ tar -zxvf hugegraph-0.7.4.tar.gz
解压完之后能看到一个hugegraph-0.7.4
目录,这个目录和用源码包打包生成的是一样的。
下面讲解如何配置参数。
配置参数
虽然标题叫配置参数,但其实hugegraph
的默认配置就已经能在大部分环境下直接使用了,不过还是说明一下几个重要的配置项。
进入hugegraph-0.7.4
目录,修改HugeGraphServer
提供服务的url (host + port)
$ vim conf/rest-server.properties
# bind url
restserver.url=http://127.0.0.1:8080
# gremlin url to connect
gremlinserver.url=http://127.0.0.1:8182
# graphs list with pair NAME:CONF_PATH
graphs=[hugegraph:conf/hugegraph.properties]
# authentication
#auth.require_authentication=
#auth.admin_token=
#auth.user_tokens=[]
restserver.url
就是HugeGraphServer
对外提供RESTful API
服务的地址,host
为127.0.0.1
时只能在本机访问的,按需要修改其中的host
和port
部分即可。我这里由于studio
也是准备在本地启动,8080
端口也没有其他服务占用,所以不修改它。
graphs
是可供连接的图名与配置项的键值对列表,hugegraph:conf/hugegraph.properties
表示通过HugeGraphServer
可以访问到一个名为hugegraph
的图实例,该图的配置文件路径为conf/hugegraph.properties
。我们可以不用去管图的配置文件,按需要修改图的名字即可。我这里仍然没有修改它。
初始化后端
hugegraph
启动服务之前是需要手动初始化后端的,不过大家也不要看到“手动”两个字就害怕,其实就是调一个命令的事。
$ bin/init-store.sh
Initing HugeGraph Store...
2018-09-07 16:02:12 1082 [main] [INFO ] com.baidu.hugegraph.cmd.InitStore [] - Init graph with config file: conf/hugegraph.properties
2018-09-07 16:02:12 1201 [main] [INFO ] com.baidu.hugegraph.HugeGraph [] - Opening backend store 'rocksdb' for graph 'hugegraph'
2018-09-07 16:02:12 1258 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rocksdb-data/schema
2018-09-07 16:02:12 1417 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Failed to open RocksDB 'rocksdb-data/schema' with database 'hugegraph', try to init CF later
2018-09-07 16:02:12 1445 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rocksdb-data/system
2018-09-07 16:02:12 1450 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Failed to open RocksDB 'rocksdb-data/system' with database 'hugegraph', try to init CF later
2018-09-07 16:02:12 1456 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rocksdb-data/graph
2018-09-07 16:02:12 1461 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Failed to open RocksDB 'rocksdb-data/graph' with database 'hugegraph', try to init CF later
2018-09-07 16