JanusGraph的安装及使用

由于JanusGraph支持不同的存储后端和索引后端,所以安装方式也有几种:

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

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

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

然而,根据官网提供的部署场景也有一下四种:

1、JanusGraph Server与存储后端实例以及每个服务器上的索引后端实例一起运行,然后应用程序以集群的形式访问JanusGraph提供的服务

2、高级场景:不再将JanusGraph服务器实例与存储后端以及索引后端一起托管,而是将它们分别放在不同的服务器上

3、极简部署场景:可以看作是1中的子集,只是将JanusGraph 与存储后端和索引后端一起安装到同一台主机上,此场景常用于本地测试,本文将采用该种安装方式

4、嵌入式场景:将JanusGraph作为库嵌入基于JVM的应用程序中。虽然这减少了管理开销,但它使得不可能独立于应用程序伸缩JanusGraph

本文将分享Window 的安装和Linux(CentOS)的安装

JanusGraph Window下的安装与使用

主要介绍JanusGraph在Windows下的安装,采用JanusGraph+BerkeleyDB+ES的安装模式;我们知道JanusGraph已经内嵌了像Cassandra和BerkeleyDB 存储后端。

BerkeleyDB 是一个key-value的Nosql数据库,是一个嵌入式的数据库,不需要单独启动,只需启动。而后台索引ES,solr是可选的,但是ES需要在JanusGraph 之前启动

Tinkerpop内存图数据库

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

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

1、下载JanusGraph:

2、安装配置:

第一步:解压JanusGraph

将JanusGraph安装包解压到某个目录,例如:D:Apachejanusgraph-0.2.3-hadoop2

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

下载http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe,将其放入D:Apachejanusgraph-0.2.3-hadoop2in目录下。

第三步:启动ElasticSearch

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

第四步:启动JanusGraph控制台

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

注意:

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

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

JanusGraph的使用方式通常包括:

1、 以嵌入式开发(Java)的方式访问;

2、 通过Gremlin Console控制台访问;

3、 通过JanusGraph Server的方式访问;

本文将介绍以控制台访问的方式:

JanusGraph基本使用

在Gremlin控制台模式下,以berkeley+es的方式开启Graph实例,如下:

gremlin> graph = JanusGraphFactory.open(conf/janusgraph-berkeleyje-es.properties)

==>standardjanusgraph[berkeleyje: D:Apachejanusgraph-0.2.3-hadoop2conf../db/berkeley]

gremlin>

JanusGraph自带了一个很有名的图数据案例,叫做"The Graph of the Gods",也称罗马诸神。JanusGraphFactory提供了静态的方法来加载图数据。

gremlin> GraphOfTheGodsFactory.load(graph)

==>null

获取图遍历句柄

gremlin> g = graph.traversal()

==>graphtraversalsource[standardjanusgraph[berkeleyje:D:Apachejanusgraph-0.2.3-hadoop2conf../db/berkeley], standard]

查询saturn的祖父

gremlin> g.V(saturn).in(father).in(father).values(name)

==>hercules

参考:

经验分享 程序员 微信小程序 职场和发展