图数据库JanusGraph实战[3]: Windows下JanusGraph的安装

作者:胡佳辉

 

图数据库JanusGraph实战是一个系列文章,将全面介绍JanusGraph的各个方面。本文是该系列的第三篇,主要介绍JanusGraph在Windows下的安装,采用JanusGraph+Berkeley+ES的安装模式。

JanusGraph安装说明

JanusGraph的源代码是用Java开发的,因此需要安装JDK。推荐使用Oracle JDK1.8。

JanusGraph由于其灵活的架构,因此部署方式也有很多种。采用不同的后端存储和索引框架,部署方式就不同。最常见的部署模式有三种:

JanusGraph+Berkeley+ES:主要用于小型环境

JanusGraph+Cassandra+ES:适用于无Hadoop环境

JanusGraph+HBase+ES:适用于与Hadoop集成的环境

另外,JanusGraph的安装也可以只配置后端存储框架,不配置外部索引框架。JanusGraph支持两种索引,即Composite Index和Mixed Index,后端存储默认支持Composite Index,如果不配置外部索引框架,那么就不支持Mixed Index。

 

Tinkerpop内存图数据库

Tinkerpop作为一个图数据库与图计算框架,定义了一套完整的API,它自身也把这套API做了一个名为TinkerGraph的简单实现。Tinkerpop是基于内存的图数据库,JanusGraph在集成Tinkerpop的时候也保留了TinkerGraph。

如果你只是做一些Gremlin语言的基本练习,不需要存储练习的图数据,那么就可以采用它。TinkerGraph在启动Gremlin Console时会默认加载。

 

JanusGraph+Berkeley+ES安装

前置条件:Oracle JDK8已安装好!考虑到大部分朋友使用的是Windows作为开发环境,这里以Windows下安装为例。

版本选择

JanusGraph当前(2018-12-3)的最新版本为0.3.1。与之兼容的BerkeleyJE版本为7.4.5,ElasticSearch版本为6.0.1,这两个版本在安装包里已经包含了。

安装包下载

JanusGraph 0.3.1到这里下载https://github.com/JanusGraph/janusgraph/releases/。大约261M。

安装与配置

第一步:解压JanusGraph

将JanusGraph安装包解压到某个目录,例如:H:\ssdgreen\janusgraph-0.3.1-hadoop2

第二步:下载Hadoop的本地工具

下载http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe,将其放入janusgraph-0.3.1-hadoop2\bin目录下。

第三步:启动ElasticSearch

JanusGraph自带了ElasticSearch,进入JanusGraph解压目录的elasticsearch\bin下面,直接双击elasticsearch.bat,即可启动ElasticSearch。

第四步:启动JanusGraph控制台

找到JanusGraph解压目录bin下的gremlin.bat,右键,选择”以管理员身份”运行。也可以将H:\ssdgreen\janusgraph-0.3.1-hadoop2\bin\gremlin.bat做一个快捷方式,放到桌面,方便后续启动。

注意:

[1] 运行的时候,需要以管理员身份运行,需要注册一些信息,后续直接双击运行即可。

[2] 除了控制台之外,还可以通过gremlin-server.bat启动JanusGraph Server接收远程访问。

 

JanusGraph基本使用

在Gremlin控制台模式下,以berkeley+es的方式开启Graph实例,如下:
gremlin> graph = JanusGraphFactory.open('conf/janusgraph-berkeleyje-es.properties')
==>standardjanusgraph[berkeleyje:H:\ssdgreen\janusgraph-0.3.1-hadoop2\conf\../db/berkeley]
gremlin>
JanusGraph自带了一个很有名的图数据案例,叫做"The Graph of the Gods",也称罗马诸神。JanusGraphFactory提供了静态的方法来加载图数据。
gremlin> GraphOfTheGodsFactory.load(graph)
==>null
获取图遍历句柄
gremlin> g = graph.traversal()
==>graphtraversalsource[standardjanusgraph[berkeleyje:H:\ssdgreen\janusgraph-0.3.1-hadoop2\conf\../db/berkeley], standard]
通过图遍历查询罗马神话中指农神萨图努斯saturn的信息
gremlin> g.V().has('name', 'saturn').valueMap()
==>[name:[saturn],age:[10000]]
创建一个顶点(也称节点)
gremlin> g.addV('person').property('name','Dennis')
==>v[4176]
查询刚创建的顶点
gremlin> g.V().has('name', 'Dennis').valueMap()
==>[name:[Dennis]]
gremlin>