JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例

栏目: 后端 · 发布时间: 6年前

内容简介:由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph。本篇小记记录了我们安装 JanusGraph 的过程。根据

由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph。本篇小记记录了我们安装 JanusGraph 的过程。

JanusGraph 简介

根据 官网的介绍 ,JanusGraph 是一个可扩展的图数据库,针对存储和查询包含分布在多机群集中的数千亿个顶点和边的图进行了优化。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。

JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例 JanusGraph 支持多种存储后端:

  • Apache Cassandra®
  • Apache HBase®
  • Google Cloud Bigtable
  • Oracle BerkeleyDB

同时也支持地理搜索、范围搜索、全文检索,这些功能借助了以下搜索引擎:

  • ElasticSearch™
  • Apache Solr™
  • Apache Lucene®

JanusGraph 原生支持 Apache TinkerPop™ 图栈,包括:

  • Gremlin 图查询语言
  • Gremlin 图服务器
  • Gremlin 应用

JanusGraph 的安装

本次 JanusGraph 的安装是基于 Ubuntu 18.04 LTS 环境,主要借助 Docker 安装了存储后端 Cassandra 和搜索引擎 ElasticSearch。

0. Docker 安装

考虑到网络问题,Docker的安装主要参考了清华镜像站的介绍: Docker Community Edition 镜像使用帮助

1) 信任 Docker 的 GPG 公钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

2) 添加软件仓库:

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) \
   stable"

3) 最后安装 Docker-CE

sudo apt-get update
sudo apt-get install docker-ce

4) 添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)

sudo groupadd docker
sudo usermod -aG docker $USER

5) 额外的步骤:添加国内的 Docker 镜像加速

/etc/docker/daemon.json 文件中编辑如下内容:

{
  "registry-mirrors": [
      "https://registry.docker-cn.com"
  ]
}

1. Cassandra 安装

Cassandra 的安装参考了 官方的Docker库 ,此次安装的版本是 3.11.3

docker run --name cassandra-3.11.3 -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 -d cassandra:3.11.3

2. Elasticsearch 安装

Elasticsearch 的安装参考了 官方的Docker库 ,此次安装的版本是 5.5.2

docker run --name es-5.5.2 -p 9200:9200 -p 9300:9300 -d elasticsearch:5.5.2

中文分词插件安装(可选)

可以参考 IK Analysis for Elasticsearch 的 GitHub 介绍 安装。

首先进入 Elasticsearch 的 Docker 环境,

docker exec -it es-5.5.2 bash

然后执行下面的安装命令即可。

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.2/elasticsearch-analysis-ik-5.5.2.zip

安装成功后需要退出当前 Elasticsearch 的 Docker 环境,执行 exit 即可。

随后重新启动 Elasticsearch:

docker restart es-5.5.2

3. 安装 JanusGraph

JanusGraph 的下载地址在其 Github Releases 页面 上。

具体的安装与配置参考了 官网文档 的介绍

此次选择下载 janusgraph-0.3.0-hadoop2.zip

wget https://github.com/JanusGraph/janusgraph/releases/download/v0.3.0/janusgraph-0.3.0-hadoop2.zip

下载完成后使用 unzip 解压,并进入 janusgraph~ 目录。

我们需要 JanusGraph 以服务的方式运行,并使用 WebSocket 通信。

首先需要查看`conf/gremlin-server/gremlin-server.yaml'这个配置文件,一会启动服务时会指定这个配置文件。文件中前几行是这些内容:

host: 0.0.0.0
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
  graph: conf/gremlin-server/janusgraph-cql-es-server.properties
}
  • hostport 指定了服务监听的地址和端口;
  • scriptEvaluationTimeout 指单次查询最长的时间,默认是 30s
  • channelizer 设置使用 WebSocketChannelizer 还是 HttpChannelizer
  • graphs.graph 指向了JanusGraph的具体配置文件 conf/gremlin-server/janusgraph-cql-es-server.properties

下面是 janusgraph-cql-es-server.properties 中的主要配置内容

# 存储后端
storage.backend=cql
storage.hostname=127.0.0.1
storage.cql.keyspace=janusgraph

# 缓存配置
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.25

# 搜索引擎配置
index.search.backend=elasticsearch
index.search.hostname=127.0.0.1
index.search.elasticsearch.client-only=true

配置完成后,就可以启动 Gremlin Server 啦!

bin/gremlin-server.sh ./conf/gremlin-server/gremlin-server.yaml

成功启动后就会显示在监听 8182 端口了:

INFO  org.apache.tinkerpop.gremlin.server.GremlinServer  - Channel started at port 8182.

小结

到此, JanusGraph 的安装配置到此就大功告成了!如果需要更详细地配置,还是建议阅读官网的文档。这篇小记仅以流水账的形式记录了我们安装 JanusGraph 的过程,由于我们也是初次接触图数据库库和 JanusGraph ,可能存在诸多不足和不对的地方,欢迎大家批评指正。

后续,我们还将进一步介绍我们在 JanusGraph 中定义Schema、构建索引以及查询的相关过程和踩过的坑。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

极致:互联网时代的产品设计

极致:互联网时代的产品设计

戴维•罗斯 / 中信出版集团 / 2016-6 / 49.00元

在不远的未来,日常物品将能够迅速理解我们的需求,改善我们的生活,并随处可见。为了实现这一预期,我们需要能够发现用户使用产品的场景,找到用户高频刚需痛点的产品设计者。 站在下一个转型发展的悬崖上,我们看到技术将更具人性。随着物联网的发展,我们习以为常的数百件日常物品:汽车、钱包、手表、雨伞甚至垃圾桶,都将回应我们的需求,了解我们,学习为我们思考。最先出现的智能硬件为什么是智能手环、无人驾驶汽车......一起来看看 《极致:互联网时代的产品设计》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具