JanusGraph数据库集群是由一个或多个JaunsGraph实例组成。获取JanusGraph必须提供一个配置信息告诉JanusGraph怎么建立连接。
JanusGraph配置文件指定来JanusGraph需要使用哪些组件,控制JanusGraph部署的各种操作,以及提供许多的配置项来调整JanusGraph集群的性能。
JanusGraph必须至少配置JanusGraph用作后端存储的持久化引擎。第III部分“后端存储”列出了所有支持的持久化引擎以及分别如何配置它们。如果需要高级图查询支持(例如全文搜索,地理搜索或范围查询),则必须配置后端索引。有关详细信息,请参见第IV部分“后端索引”。如果需要考虑查询性能,则应启用缓存。缓存配置和调优在第13章JanusGraph Cache中介绍。
下面的配置示例,介绍了如何配置最常用的后端存储、索引系统和性能组件。但这只涉及了配置的一小部分,有关更多的配置信息,请参阅第15章 配置参考。
使用本地的Cassandra和远端的Elasticsearch来配置JanusGraph
storage.backend=cql
storage.hostname=localhost
index.search.backend=elasticsearch
index.search.hostname=100.100.101.1, 100.100.101.2
index.search.elasticsearch.client-only=true
使用远程运行的Hbase和JanusGraph的缓存来配置JanusGraph,以获取更好的性能
storage.backend=hbase
storage.hostname=100.100.101.1
storage.port=2181
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5
使用内置的BerkeleyDB和Elasticsearch来配置JanusGraph
storage.backend=berkeleyje
storage.directory=/tmp/graph
index.search.backend=elasticsearch
index.search.directory=/tmp/searchindex
index.search.elasticsearch.client-only=false
index.search.elasticsearch.local-mode=true
第15章 参考配置中详细介绍了这些配置。JanusGraph的zip包下的conf目录中也包含了其他的配置示例。
conf 目录下有几个配置文件示例可用于快速启动JanusGraph。 把这些文件的路径传值给JanusGraphFactory.open(...),如下所示:
// Connect to Cassandra on localhost using a default configuration
graph = JanusGraphFactory.open("conf/janusgraph-cql.properties")
// Connect to HBase on localhost using a default configuration
graph = JanusGraphFactory.open("conf/janusgraph-hbase.properties")
怎么去配置JanusGraph取决于它实例化的方式。
JanusGraph安装包中包含了一个Gremlin Console工具,它可以让你轻松入门并与JanusGraph进行交互。 执行bin / gremlin.sh(Unix / Linux)或bin / gremlin.bat(Windows)来启动控制台,然后使用已存在的配置文件调用factory方法来打开JanusGraph图:
graph = JanusGraphFactory.open('path/to/configuration.properties')
JanusGraphFactory也可以通过基于JVM的应用程序来创建JanusGraph实例。 在这种情况下,JanusGraph是用户应用程序的一部分,应用程序可以通过其开放的API直接调用JanusGraph。
如果之前已配置好JanusGraph集群或者只需要配置后端存储,则JanusGraphFactory可以接受以冒号分隔的后端存储的名称和主机名或目录的字符串这样的参数。
graph = JanusGraphFactory.open('cql:localhost')
graph = JanusGraphFactory.open('berkeleyje:/tmp/graph')
JanusGraph本身就是一组没有执行线程的jar文件。 连接和使用JanusGraph数据库有两种基本模式:
对于JanusGraph Server,JanusGraph使用Apache TinkerPop的Gremlin Server来处理客户端请求。JanusGraph提供了一个可以直接使用的配置,来快速启动JanusGraph Server,但可以更改配置以满足广泛的服务需求。
配置JanusGraph Server是通过位于JanusGraph安装包中的./conf/gremlin-server目录下的JanusGraph Server yaml配置文件来完成的。 要使用图实例(JanusGraph)配置JanusGraph Server,JanusGraph Server配置文件需要以下设置:
...
graphs: {
graph: conf/janusgraph-berkeleyje.properties
}
scriptEngines: {
gremlin-groovy: {
plugins: { org.janusgraph.graphdb.tinkerpop.plugin.JanusGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
...
graphs配置 定义了与特定JanusGraph配置的绑定。 在上面的例子中,它将图绑定到conf / janusgraph-berkeleyje.properties上的JanusGraph配置。 scriptEngines配置 启用了JanusGraph Gremlin插件,该插件支持自动导入JanusGraph类,以便可以在远程提交的脚本中引用它们。
在第7章JanusGraph Server中了解有关配置和使用JanusGraph Server的更多信息。
JanusGraph zip文件包含一个快速启动服务器组件,有助于更轻松地使用Gremlin Server和JanusGraph。 调用bin / janusgraph.sh start来基于Cassandra和Elasticsearch启动Gremlin Server。
注意:出于安全原因,Elasticsearch和janusgraph.sh必须在非root帐户下运行
JanusGraph区分本地和全局配置选项。 本地配置选项适用于单个JanusGraph实例。 全局配置选项适用于群集中的所有实例。 更具体地说,JanusGraph区分了以下五个配置选项范围:
启动集群中的第一个JanusGraph实例时,将从提供的本地配置文件初始化全局配置项。 之后,将通过JanusGraph的management API来更改全局配置项。 要访问management API,请在打开的JanusGraph实例句柄graph上调用graph.openManagement()。 例如,要更改JanusGraph集群上的默认缓存行为:
mgmt = graph.openManagement()
mgmt.get('cache.db-cache')
// Prints the current config setting
mgmt.set('cache.db-cache', true)
// Changes option
mgmt.get('cache.db-cache')
// Prints 'true'
mgmt.commit()
// Changes take effect
更改配置项不会影响正在运行的实例,仅适用于新启动的实例。 更改GLOBAL_OFFLINE配置项需要重新启动集群,以使更改立即对所有实例生效。 要更改GLOBAL_OFFLINE选项,请按以下步骤操作:
关于更多配置信息(包括每个选项的配置范围),请参阅第15章“配置参考”中的完整配置项列表。