添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接



背景

Gremlin是​ ​Apache TinkerPop​ ​框架下实现的图遍历语言,支持OLTP与OLAP,是目前图数据库领域主流的查询语言,可类比SQL语言之于关系型数据库。

​HugeGraph​ ​是国内的一款开源图数据库,完全支持Gremlin语言。本文将讲述如何基于HugeGraph搭建一个执行Gremlin的图形化环境。

HugeGraph的​ ​github仓库​ ​下有很多子项目,我们这里只需要使用其中的两个:​ ​hugegraph​ ​和​ ​hugegraph-studio​ ​。

部署HugeGraphServer

准备安装包

方式一:源码编译打包

进入hugegraph项目,克隆代码库





准备执行Gremlin的图形化环境_配置文件



进入终端



$ 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​ ​表示打包成功。





准备执行Gremlin的图形化环境_配置文件_02


打包成功日志


这时会在当前目录下多出来一个子目录​ ​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​





准备执行Gremlin的图形化环境_图数据库_03



可以看到hugegraph目前有两个release,点击​ ​hugegraph-0.7.4.tar.gz​ ​就开始下载了。





准备执行Gremlin的图形化环境_git_04


releases


下载完之后解压即可



$ 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-