JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例
由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph。本篇小记记录了我们安装 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch 的过程。
原文地址:https://www.cnblogs.com/xiaff/p/Install_JanusGraph.html
本文提纲
- JanusGraph 简介
 - JanusGraph 的安装
- Docker 安装
 - Cassandra 安装
 - Elasticsearch 安装
 - 安装 JanusGraph
 
 - 小结
 
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 镜像使用帮助。
- 安装依赖
 
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
- 信任 Docker 的 GPG 公钥:
 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 添加软件仓库:
 
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
- 最后安装 Docker-CE
 
sudo apt-get update
sudo apt-get install docker-ce
- 添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)
 
sudo groupadd docker
sudo usermod -aG docker $USER
- 额外的步骤:添加国内的 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
}
host和port指定了服务监听的地址和端口;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 为例的更多相关文章
- neo4j 图数据库安装及介绍
		
neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于 ...
 - neo4j图数据库安装以及基本操作命令
		
neo4j图数据安装以及基本操作命令 neo4j安装配置使用, 安装环境:Ubuntu系统 jdk1.8 (neo4j 只支持jdk1.8以上版本) 下载 neo4j neo4j的下载window可以 ...
 - JanusGraph : 图和图数据库的简介
		
JanusGraph:图数据库系统简介 图(graph)是<数据结构>课中第一次接触到的一个概念,它是一种用来描述现实世界中个体和个体之间网络关系的数据结构. 为了在计算机中存储图,< ...
 - 高性能内存图数据库RedisGraph(一)
		
作为一种简单.通用的数据结构,图可以表示数据对象之间的复杂关系.生物信息学.计算机网络和社交媒体等领域中产生的大量数据,往往是相互连接.关系复杂且低结构化的,这类数据对传统数据库而言十分棘手,一个简单 ...
 - 图解JanusGraph系列 - 关于JanusGraph图数据批量快速导入的方案和想法(bulk load data)
		
大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...
 - (三)图数据库neo4j的安装配置
		
(一)neo4j安装 neo4j有社区版本和企业版,社区版本是免费的,企业版本是收费的.在linux上安装如下步骤: 1.将下载的neo4j-enterprise-3.4.0-unix.tar.gz包 ...
 - 图数据库titan 和 rexster安装手册
		
titan是图数据库, rexster是图显示服务 titan 安装 下载 titan 0.3.2 解压 titan-all-0.3.2.zip 到 /opt/hugedata/share/解压后得到 ...
 - Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
		
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
 - Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
		
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...
 
随机推荐
- 路飞学城知识点3缓存知识点之二redis
			
redis:支持的字符类型多,可以做持久化 memchache:只能存储到内存中,不能做持久化,仅支持字符串类型. 参考博客 redis安装服务端: github安装包 安装客户端: pip inst ...
 - centos安装flash
			
自己操作步骤: 1 :http://get.adobe.com/cn/flashplayer/ 还是进入此下载页选择“.rpm,适用于其它Linux”,下载该rpm文件 2 :# rpm -iv ...
 - hibernate简单入门教程(一)---------基本配置
			
应用级别所以很粗浅 首先介绍一下hibernate框架: 1.优秀的持久化(通俗讲把内存上的短时间运行信息存储在持久化硬盘上)框架. 2.作用于持久层,因为没什么侵入性,所以同样适用于其他层面上的存储 ...
 - SQL Server ->> ColumnStore Index(列存储索引)
			
Columnstored index是SQL Server 2012后加入的重大特性,数据不再以heap或者B Tree的形式存储(row level)存储在每一个数据库文件的页里面,而是以列为单位存 ...
 - 二、Asp.Net Core WebAPI——OcelotDemo
			
项目源码OcelotDemo 基础知识在教程或者官网文档查看 Ocelot源码 基于.NET平台的Ocelot网关框架教程汇总 这篇文章不错. 这里我只写我想说的 项目结构 API1和API2是测试的 ...
 - [翻译] BFKit
			
BFKit BFKit is a collection of useful classes to develop Apps faster. BFKit是一个有用的工具集合,帮助你快速开发. Insta ...
 - 021.9 IO流 流总结
			
###################################################################################IO流的规律总结:解决的问题,开发 ...
 - 关于javascript的单线程和异步的一些问题
			
关于js单线程和异步方面突然就糊涂了,看别人的文章越看越糊涂,感觉这方面是个坑,跳进去就不好跳出来.再去看,看着看着感觉自己明白了一些东西,也不知道对不对,反正是暂时把自己说服了,这样理解能理解的通, ...
 - phonegap 启动背景设置
			
1.拷贝一张图片到Android项目的res目录的drawable-mdpi目录下 2.在主要的src下的java文件中编写代码 package com.study.hellomobileword1; ...
 - PHP-----TP框架----命名空间
			
TP框架----命名空间 命名空间,起什么作用??? [1]命名空间是一个虚拟的目录,这个文件有可能存在这个电脑里的任何一个地方,但是如果要把这个文件它的命名空间全部写成同一个那么这些文件就相当于在同 ...