由于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在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:https://github.com/JanusGraph/janusgraph/releases/ 本文采用janusgraph-0.2.3版本
2、安装配置:
第一步:解压JanusGraph
将JanusGraph安装包解压到某个目录,例如:D:\Apache\janusgraph-0.2.3-hadoop2
第二步:下载Hadoop的本地工具
下载http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe,将其放入D:\Apache\janusgraph-0.2.3-hadoop2\bin目录下。
第三步:启动ElasticSearch
JanusGraph自带了ElasticSearch,进入JanusGraph解压目录的elasticsearch\bin下面,直接双击elasticsearch.bat,即可启动ElasticSearch。
第四步:启动JanusGraph控制台
找到JanusGraph解压目录bin下的gremlin.bat,右键,选择”以管理员身份”运行。也可以将D:\Apache\janusgraph-0.2.3-hadoop2\bin\gremlin.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:\Apache\janusgraph-0.2.3-hadoop2\conf\../db/berkeley]
gremlin>
JanusGraph自带了一个很有名的图数据案例,叫做"The Graph of the Gods",也称罗马诸神。JanusGraphFactory提供了静态的方法来加载图数据。
gremlin> GraphOfTheGodsFactory.load(graph)
==>null
获取图遍历句柄
gremlin> g = graph.traversal()
==>graphtraversalsource[standardjanusgraph[berkeleyje:D:\Apache\janusgraph-0.2.3-hadoop2\conf\../db/berkeley], standard]
查询saturn的祖父
gremlin> g.V(saturn).in('father').in('father').values('name')
==>hercules
参考:
https://docs.janusgraph.org/latest/getting-started.html
https://docs.janusgraph.org/latest/getting-started.html
https://docs.janusgraph.org/latest/deployment-scenarios.html