gremlin使用说明书:准备执行Gremlin的图形化环境
gremlin使用说明书:准备执行Gremlin的图形化环境下载完之后解压即可hugegraph-studio0.9.0地址:https://github.com/hugegraph/hugegraph-studio/releases部署HugeGraphServer准备安装包hugegraph0.9.2 地址:https://github.com/hugegraph/hugegraph/releases
背景
Gremlin是Apache TinkerPop框架下实现的图遍历语言,支持OLTP与OLAP,是目前图数据库领域主流的查询语言,可类比SQL语言之于关系型数据库。
HugeGraph是国内的一款开源图数据库,完全支持Gremlin语言。本文将讲述如何基于HugeGraph搭建一个执行Gremlin的图形化环境。
HugeGraph的github仓库下有很多子项目,我们这里只需要使用其中的两个:hugegraph和hugegraph-studio。
部署HugeGraphServer
准备安装包
hugegraph0.9.2 地址:https://github.com/hugegraph/hugegraph/releases
hugegraph-studio0.9.0地址:https://github.com/hugegraph/hugegraph-studio/releases
下载完之后解压即可
$ tar -zxvf hugegraph-0.9.2.tar.gz $ tar -zxvf hugegraph-studio-0.9.0.tar.gz
解压完之后能看到一个hugegraph-0.9.2目录/hugegraph-studio-0.9.0目录。
下面讲解如何配置参数。
配置参数
虽然标题叫配置参数,但其实hugegraph的默认配置就已经能在大部分环境下直接使用了,不过还是说明一下几个重要的配置项。
进入hugegraph-0.9.2目录,修改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启动服务之前是需要手动初始化后端的,不过大家也不要看到“手动”两个字就害怕,其实就是调一个命令的事。
root@nest-VirtualBox:/opt/hugegraph-0.9.2# bin/init-store.sh Initing HugeGraph Store... 2019-09-03 01:54:41 999 [main] [INFO ] com.baidu.hugegraph.cmd.InitStore [] - Init graph with config file: conf/hugegraph.properties 2019-09-03 01:54:41 1145 [main] [INFO ] com.baidu.hugegraph.HugeGraph [] - Opening backend store 'rocksdb' for graph 'hugegraph' 2019-09-03 01:54:41 1216 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rockschema 2019-09-03 01:54:42 1545 [main] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with data path: rockgraph 2019-09-03 01:54:42 2038 [main] [INFO ] com.baidu.hugegraph.cmd.InitStore [] - Skip init-store due to the backend store of 'hugegraph' hnitialized 2019-09-03 01:54:42 2048 [task-db-worker-1] [INFO ] com.baidu.hugegraph.backend.store.rocksdb.RocksDBStore [] - Opening RocksDB with datocksdb-data/system
这里可以看到,hugegraph初始化了rocksdb后端,那为什么是rocksdb而不是别的呢,其实就是上一步说的conf/hugegraph.properties中配置的。
$ vim conf/hugegraph.properties # gremlin entrence to create graph gremlin.graph=com.baidu.hugegraph.HugeFactory # cache config #schema.cache_capacity=1048576 #graph.cache_capacity=10485760 #graph.cache_expire=600 # schema illegal name template #schema.illegal_name_regex=\s |~.* #vertex.default_label=vertex backend=rocksdb serializer=binary store=hugegraph # rocksdb backend config #rocksdb.data_path=/path/to/disk #rocksdb.wal_path=/path/to/disk ...
其中backend=rocksdb就是设置后端为rocksdb的配置项。
其他的后端还包括:memory、cassandra、scylladb、hbase、mysql和palo。我们这里不用去管它,用默认的rocksdb即可。
初始化完成之后,会在当前目录下出现一个rocksdb-data的目录,这就是存放后端数据的地方,没事千万不要随意删它或移动它。
注意:初始化后端这个操作只需要在第一次启动服务前执行一次,不要每次起服务都执行。不过即使执行了也没关系,hugegraph检测到已经初始化过了会跳过。
启动服务
终于到了启动服务了,同样也是一条命令
root@nest-VirtualBox:/opt/hugegraph-0.9.2# bin/start-hugegraph.sh Starting HugeGraphServer... Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs).....OK
看到上面的OK就表示启动成功了。
如果还不放心,我们可以发个HTTP请求试试看。
$ curl http://127.0.0.1:8080/graphs {"graphs":["hugegraph"]}
到这里HugeGraphServer的部署就完成了,接下来我们来部署HugeGraphStudio。
部署HugeGraphStudio
上面我们已经将HugeGraphStudio包解压到相同目录。我们直接看配置文件。
配置参数
进入hugegraph-studio-0.7.0目录,修改唯一的一个配置文件。
$ cd hugegraph-studio-0.7.0 $ vim conf/hugegraph-studio.properties studio.server.port=8088 studio.server.host=localhost graph.server.host=localhost graph.server.port=8080 graph.name=hugegraph # the directory name released by react studio.server.ui=ui # the file location of studio-api.war studio.server.api.war=war/studio-api.war # default folder in your home directory set to a non-empty value to override data.base_directory=~/.hugegraph-studio show.limit.data=250 show.limit.edge.total=1000 show.limit.edge.increment=20 # separator ' ' gremlin.limit_suffix=[.V() .E() .hasLabel(STR) .hasLabel(NUM) .path()]
需要修改的参数是graph.server.host=localhost、graph.server.port=8080、graph.name=hugegraph。它们与HugeGraphServer的配置文件conf/rest-server.properties中的配置项对应,其中:
- graph.server.host=localhost与restserver.url=http://127.0.0.1:8080的host对应;
- graph.server.port=8080与的restserver.url=http://127.0.0.1:8080的port对应;
- graph.name=hugegraph与graphs=[hugegraph:conf/hugegraph.properties]的图名对应。
因为我之前并没有修改HugeGraphServer的配置文件conf/rest-server.properties,所以这里也不需要修改HugeGraphStudio的配置文件conf/hugegraph-studio.properties。
若你的服务是在远程服务器上搭建,又想在本地访问,那么你就需要修改hugegraph-studio的配置文件中studio.server.host=服务器ip的参数
启动服务
$ bin/hugegraph-studio.sh
studio的启动默认是不会放到后台的,所以我们会在控制台上看到一大串日志,在最底下看到如下日志表示启动成功:
信息: Starting ProtocolHandler [http-nio-127.0.0.1-8088] 16:56:24.507 [main] INFO com.baidu.hugegraph.studio.HugeGraphStudio ID: TS: - HugeGraphStudio is now running on: http://localhost:8088
然后我们按照提示,在浏览器中输入http://localhost:8088,就进入了studio的界面: