由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph。本篇小记记录了我们安装 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch 的过程。

原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html

本文提纲

  1. JanusGraph 简介
  2. JanusGraph 的安装
    • Docker 安装
    • Cassandra 安装
    • Elasticsearch 安装
    • 安装 JanusGraph
  3. 小结

JanusGraph 简介

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



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. 安装依赖
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
  1. 信任 Docker 的 GPG 公钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 添加软件仓库:
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
  1. 最后安装 Docker-CE
sudo apt-get update
sudo apt-get install docker-ce
  1. 添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)
sudo groupadd docker
sudo usermod -aG docker $USER
  1. 额外的步骤:添加国内的 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、构建索引以及查询的相关过程和踩过的坑。

原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html

JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例的更多相关文章

  1. neo4j 图数据库安装及介绍

    neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于 ...

  2. neo4j图数据库安装以及基本操作命令

    neo4j图数据安装以及基本操作命令 neo4j安装配置使用, 安装环境:Ubuntu系统 jdk1.8 (neo4j 只支持jdk1.8以上版本) 下载 neo4j neo4j的下载window可以 ...

  3. JanusGraph : 图和图数据库的简介

    JanusGraph:图数据库系统简介 图(graph)是<数据结构>课中第一次接触到的一个概念,它是一种用来描述现实世界中个体和个体之间网络关系的数据结构. 为了在计算机中存储图,< ...

  4. 高性能内存图数据库RedisGraph(一)

    作为一种简单.通用的数据结构,图可以表示数据对象之间的复杂关系.生物信息学.计算机网络和社交媒体等领域中产生的大量数据,往往是相互连接.关系复杂且低结构化的,这类数据对传统数据库而言十分棘手,一个简单 ...

  5. 图解JanusGraph系列 - 关于JanusGraph图数据批量快速导入的方案和想法(bulk load data)

    大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...

  6. (三)图数据库neo4j的安装配置

    (一)neo4j安装 neo4j有社区版本和企业版,社区版本是免费的,企业版本是收费的.在linux上安装如下步骤: 1.将下载的neo4j-enterprise-3.4.0-unix.tar.gz包 ...

  7. 图数据库titan 和 rexster安装手册

    titan是图数据库, rexster是图显示服务 titan 安装 下载 titan 0.3.2 解压 titan-all-0.3.2.zip 到 /opt/hugedata/share/解压后得到 ...

  8. Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  9. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...

随机推荐

  1. .net core系列之《在.net core中使用MemoryCache实现本地缓存》

    说到内存缓存MemoryCache不由的让我想起.Net Framework中的MemoryCache,它位于 System.Runtime.Caching 程序集中. 接下来我们来看看.net co ...

  2. 通信与实际用例应用(消息队列和进程撰写的ATM机与消息队列的五子棋对站)

    int semget(key_t key, int nsems, int semflg); 功能:创建信号量或获取信号量 nsems:信号量的数量 semflg: IPC_CREAT|IPC_EXEC ...

  3. SVN global ignore pattern

    *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store */bin */ ...

  4. 随手记C#资料

    1.where T: new()where后的称为泛型约束,这里约束泛型参数T必须具有无参的构造函数 2.判断路径是本地路径还是网址 private static bool IsLocalPath(s ...

  5. Python学习---ORM查询之基于对象的正向/反向/聚合/分组/Q/F查询

    ORM查询之基于对象的正向查询与反向查询 对象形式的查询 # 正向查询 ret1=models.Book.objects.first() print(ret1.title) print(ret1.pr ...

  6. 宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用

    目录 一,安装宝塔面板(V 6.8) 二,使用宝塔安装 Docker,配置阿里云容器服务 三,安装 Rancher (Server) 四,管理 Rancher.添加集群 五,添加 Rancher 应用 ...

  7. find bugs设置

  8. Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.

    System.Data.OracleClient 已经过时了.微软不再支持它. 因此,我建议你为. NET 使用Oracle数据提供程序:ODP.Net. 你可以从以下位置下载: 版本:Release ...

  9. 51nod 1102 面积最大的矩形

    题目地址在这儿 求取:以某矩形g[i]为最小值的区间的左右端点,得到一个临时解.所有临时解中的最大值即为解. 求取区间的方法可以用单调栈,也可以用下面这种十分简洁的类似于递归的方法.下面这种解法求出来 ...

  10. scala当中的对象

    1.scala当中的Object 在scala当中,没有类似于像java当中的static修饰的静态属性或者静态方法或者静态代码块之类的,但是我们可以通过scala当中的Object来实现类似的功能. ...