JanusGraph 图数据库搭建
最近折腾了一波 JanusGraph 图数据库的部署,采用 JanusGraph
+ HBase
+ ElasticSearch
架构,在此记录下过程。
搭建
搭建准备
本文主要记录 JanusGraph 图数据库的部署,需要另行搭建 HBase 和 ElasticSearch,本文以本地已经部署好 HBase 和 ElasticSearch 为例。
- HBase 地址:
127.0.0.1:2181
- ElasticSearch 地址:
127.0.0.1:9200
另外,系统需安装有unzip
、jdk
和你喜欢的文本编辑器,且建议在非 root 用户下执行。
文件准备
项目地址: JanusGraph/janusgraph
在 Github release 页面上下载我们所需要的文件,形如janusgraph-{VERSION}-hadoop2.zip
,在这里我们下载最新版 0.3.2
版本: janusgraph-0.3.2-hadoop2.zip
,并解压出来。
1 | cd ~ |
接下来的操作大部分在此文件夹内进行,即~/janusgraph
文件夹内。
调整 Gremlin Server 配置
通过vi conf/gremlin-server/gremlin-server.yaml
打开,有以下部分配置需要改动。
1 | # 监听地址,默认对外开放,若只允许本地访问则更改为 127.0.0.1 |
完整配置
1 | host: 0.0.0.0 |
调整 properties 文件
通过vi conf/gremlin-server/janusgraph.properties
打开 properties 文件,加入以下内容。
1 | gremlin.graph = org.janusgraph.core.JanusGraphFactory |
临时启用服务
运行如下命令启动服务。
1 | bin/gremlin-server.sh conf/gremlin-server/gremlin-server.yaml |
由于使用了默认配置文件,则可以省略配置文件路径。
1 | bin/gremlin-server.sh |
当屏幕上出现如下内容时,则代表服务已经开启完成。
1 | [gremlin-server-boss-1] INFO org.apache.tinkerpop.gremlin.server.GremlinServer - Channel started at port 8182. |
守护进程
配置
在此以 systemd 为例进行配置,可以参考一下,注意替换文件路径。
1 | sudo vi /etc/systemd/system/janusgraph.service |
输入以下内容并保存:
1 | [Unit] |
可能会遇到错误,显示java: command not found
,请把上面的备注取消掉,替换上自己的系统环境变量。
常用命令
- 启用服务:
sudo service janusgraph start
- 关闭服务:
sudo service janusgraph stop
- 重启服务:
sudo service janusgraph restart
- 开机启动:
sudo systemctl enable janusgraph
- 取消开机启动:
sudo systemctl disable janusgraph
- 查看日志:
sudo journalctl -u janusgraph --since tody
测试
测试 WebSocket
运行bin/gremlin.sh
。
1 | [admin@localhost janusgraph]$ bin/gremlin.sh |
如能正常响应,则表示部署成功。
测试 Http
运行如下命令测试 http 能否正常响应。
1 | curl -XPOST -Hcontent-type:application/json -d '{"gremlin":"g.V().count()"}' http://localhost:8182 |
应有类似如下返回内容,则为正常。
1 | { |
可能遇到的坑
别问我怎么知道的
- 本地是否安装 java
- 配置文件路径是否正确
- 远程 hbase 和 es 端口防火墙是否开放
- 远程 hbase 和 es 是否监听的是本地地址