配置文件

JanusGraph数据库集群由一个或多个JanusGraph实例组成。要打开JanusGraph实例,必须提供一个配置,指定如何设置JanusGraph。

JanusGraph配置指定JanusGraph应该使用哪些组件,控制JanusGraph部署的所有操作方面,并提供许多调优选项以从JanusGraph集群获得最大性能。

JanusGraph配置至少必须定义JanusGraph应该用作存储后端的持久性引擎。存储后端列出了所有支持的持久性引擎以及如何分别配置它们。如果需要高级图形查询支持(例如全文搜索、地理位置搜索或范围查询),则必须配置额外的索引后端。有关详细信息,请参见索引后端。如果查询性能是一个问题,那么应该启用缓存。缓存配置和调优在JanusGraph Cache中描述。

配置示例

下面是一些示例配置文件,演示如何配置最常用的存储后端、索引系统和性能组件。这只涵盖了可用配置选项的一小部分。有关所有选项的完整列表,请参阅配置参考。

Cassandra+Elasticsearch

设置JanusGraph以使用本地运行的Cassandra持久性引擎和远程弹性搜索索引系统:

storage.backend=cql
storage.hostname=localhostindex.search.backend=elasticsearch
index.search.hostname=100.100.101.1, 100.100.101.2
index.search.elasticsearch.client-only=true

HBase+Caching

将JanusGraph设置为使用远程运行的HBase持久性引擎,并使用JanusGraph的缓存组件提高性能。

storage.backend=hbase
storage.hostname=100.100.101.1
storage.port=2181cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5

BerkeleyDB

将JanusGraph设置为使用BerkeleyDB作为嵌入式持久化引擎,将Elasticsearch作为嵌入式索引系统。

storage.backend=berkeleyje
storage.directory=/tmp/graphindex.search.backend=elasticsearch
index.search.directory=/tmp/searchindex
index.search.elasticsearch.client-only=false
index.search.elasticsearch.local-mode=true

配置参考详细描述了所有这些配置选项。JanusGraph发行版的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")

使用配置

如何向JanuGraph提供配置取决于实例化模式。

JanusGraphFactory

Gremlin Console

JanusGraph发行版包含一个命令行Gremlin控制台,它使JanusGraph易于启动和交互。调用bin/gremlin.sh(Unix/Linux)或bin/gremlin.bat(Windows)启动控制台,然后使用工厂打开JanusGraph图形,其配置存储在可访问的属性配置文件中:

graph = JanusGraphFactory.open('path/to/configuration.properties')

JanusGraph Embedded

JanusGraphFactory还可以用于从基于JVM的用户应用程序中打开嵌入式JanusGraph实例。在这种情况下,JanusGraph是用户应用程序的一部分,应用程序可以通过其公共API直接调用JanusGraph。

Short Codes

如果JanusGraph集群以前已配置和/或只需要定义存储后端,JanusGraphFactory将接受以冒号分隔的字符串表示的存储后端名称和主机名或目录。

graph = JanusGraphFactory.open('cql:localhost')
graph = JanusGraphFactory.open('berkeleyje:/tmp/graph')

JanusGraph服务器

JanusGraph本身就是一组没有执行线程的jar文件。连接和使用JanusGraph数据库有两种基本模式:

  1. JanusGraph可以通过在客户端程序中嵌入JanusGraph调用来使用,该程序提供执行线程。
  2. JanusGraph打包了一个长时间运行的服务器进程,该进程在启动时允许在单独程序中运行的远程客户端或逻辑进行JanusGraph调用。这个长时间运行的服务器进程称为JanusGraph服务器。

对于JanuGraph服务器,JanuGraph使用ApacheTinkerpop堆栈的Gremlin服务器来服务客户机请求。JanuGraph提供了一个现成的配置,以便快速启动JanuGraph服务器,但可以更改配置,以提供广泛的服务器功能。

配置JanusGraph服务器是通过JanusGraph发行版的./conf/gremlin Server目录中的JanusGraph服务器yaml配置文件完成的。要使用图形实例(JanusGraph)配置JanusGraph服务器,JanusGraph服务器配置文件需要以下设置:

...
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]}}}}
...

图的条目定义了到特定JanusGraph配置的绑定。在上面的例子中,它将graph绑定到位于conf/JanusGraph-berkeleyje.properties的JanusGraph配置。plugins条目启用JanusGraph Gremlin插件,该插件启用JanusGraph类的自动导入,以便在远程提交的脚本中引用它们。

了解有关在JanusGraph服务器中配置和使用JanusGraph服务器的更多信息。

服务器分发

JanusGraph zip文件包含一个快速入门服务器组件,可以帮助您更轻松地开始使用Gremlin服务器和JanusGraph。调用bin/janusgraph.sh start,用Cassandra和Elasticsearch启动Gremlin服务器。

Note

出于安全原因,Elasticsearch和janusgraph.sh必须在非根帐户下运行

Note

从0.5.1开始,它只是包含在完整的包版本中。

全局配置

JanusGraph区分了本地和全局配置选项。本地配置选项应用于单个JanusGraph实例。全局配置选项适用于集群中的所有实例。更具体地说,JanusGraph为配置选项区分了以下五个范围:

  • LOCAL:这些选项仅适用于单个JanusGraph实例,并在初始化JanusGraph实例时提供的配置中指定。
  • MASKABLE:本地配置文件可以覆盖单个JanusGraph实例的这些配置选项。如果本地配置文件没有指定该选项,则从全局JanusGraph集群配置读取其值。
  • GLOBAL:这些选项总是从集群配置中读取,不能在实例的基础上被覆盖。
  • GLOBAL_OFFLINE:与GLOBAL类似,但是更改这些选项需要重新启动集群,以确保整个集群中的值相同。
  • FIXED:与GLOBAL类似,但是一旦JanusGraph集群初始化,就不能更改该值。

当集群中的第一个JanusGraph实例启动时,将从提供的本地配置文件初始化全局配置选项。随后,通过JanusGraph的管理API更改全局配置选项。要访问管理API,请对打开的JanusGraph实例句柄g调用g.getManagementSystem()。例如,要更改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

更改脱机选项

更改配置选项不会影响正在运行的实例,只适用于新启动的实例。更改全局脱机配置选项需要重新启动群集,以便更改对所有实例立即生效。要更改全局脱机选项,请执行以下步骤:

  • 关闭集群中除一个JanuGraph实例外的所有实例
  • 连接到单个实例
  • 确保所有正在运行的事务都已关闭
  • 确保没有启动新事务(即群集必须脱机)
  • 打开管理API
  • 更改配置选项
  • 调用commit,它将自动关闭图形实例
  • 重新启动所有实例

有关包括每个选项的配置范围的更多信息,请参阅《配置参考》中的完整配置选项列表。

JanusGraph配置相关推荐

  1. JanusGraph服务器

    JanusGraph 服务器 JanusGraph使用Gremlin服务器引擎作为服务器组件来处理和回答客户机查询.当封装在JanusGraph中时,Gremlin服务器称为JanusGraph服务器 ...

  2. 图解图库JanusGraph系列-解惑图数据库,你知道什么是图数据库吗?

    解惑图数据库!你知道什么是图数据库吗? 大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 地址:htt ...

  3. 解惑图数据库!你知道什么是图数据库吗?

    简介 为什么需要图数据库? 设想一个场景:在金融的反欺诈场景下,当一个用户小李 请求订单,我们可以设定一个规则: 获取该用户的身份证号.注册手机号.银行预留手机号.银行卡号.紧急联系人等信息 通过这些 ...

  4. 以字节跳动内部 Data Catalog 架构升级为例聊业务系统的性能优化

    背景 字节跳动 Data Catalog 产品早期,是基于 LinkedIn Wherehows 进行二次改造,产品早期只支持 Hive 一种数据源.后续为了支持业务发展,做了很多修修补补的工作,系统 ...

  5. janusgraph整合mysql_JanusGraph多图配置 (cassandra)

    JanusGraph多图配置目的 :一个端口开启后可根据句柄操作多个图 .(cassandra存储后端) 1.GremlinServer多图配置 服务器gremlin-server.yaml中可以设置 ...

  6. 需要监控JanusGraph的一些指标

    一.官方文档中说明开启metrics可以监控JanusGraph中的指标: 1.开始,提交和回滚的事务数 2.每种存储后端的尝试和失败的操作类型 3.每种存储后端操作类型的响应时间分布 实际操作后,在 ...

  7. JanusGraph报错:Unknown external index backend

    使用java连接JanusGraph进行创建图操作,报错地方是程序运行第50行代码其作用是生成混合索引,截图如下: 后在0.6版本官方文档发现有说明先贴一份截图: 具体说明如下: The exampl ...

  8. java 连接janusgraph_基于JanusGraph的大数据图数据库

    导读 知识图谱是近来很火的概念,很多领域都希望能用知识图谱解决一些问题.在零售领域其实也有使用知识图谱的场景,比如阿里使用知识图谱进行商品智能导购以及商品"巡检",而我想试验着把知 ...

  9. java对象底层原存储结构图解_图解图库JanusGraph系列-一文知晓“图数据“底层存储结构...

    大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 转载文章请保留以下声明: 一:存储模式 留言或私信我,邀请你加入"图数据库交流"微信群! 1. ...

  10. JanusGraph 安装

    下载地址:https://github.com/JanusGraph/janusgraph/releases/ 版本:Version 0.3.2 (June 16, 2019) 安装 解压 janus ...

最新文章

  1. 这个 AI 模型火上 GitHub 热榜第一,在线修复照片
  2. Java web 强制301跳转
  3. SpringCloud之Feign源码分析
  4. 技术解析系列 PouchContainer Goroutine Leak 检测实践
  5. new malloc
  6. 两条信号之间加电容_模电总结:第七章、波形的发生和信号的转换,正弦波振荡的电路...
  7. numpy元素特定条件查找过滤
  8. python中函数参数*args和**kw的区别
  9. Android ListView下拉刷新点击加载更多
  10. 杭电HDUacm2098
  11. LayUI中的内置模块之 工具集文档 - layui.util
  12. 秋招之8.31农行研发中心笔试
  13. java去除空格的函数_JAVA中去掉空格--trim函数
  14. 成立一年,手游交叉推广交易社区Chartboost已有8000款游戏加入
  15. 招聘简历管理系统的简单设计
  16. 用户要进行远程登录 必须在自己的计算机上,大学计算机基础上机考试题库3
  17. Microsoft Remote Desktop提示「Your session was disconnected」
  18. 什么样的人适合学习嵌入式开发
  19. C语言中如何输出一些特殊的字符
  20. 电竞AI之视觉篇:YOLO算法在电竞中的应用(Darknet + TF)

热门文章

  1. wifi无线破解之跑pin最详细教程 2017
  2. hprose php,hprose和swoole区别
  3. Debian11更换阿里源
  4. ArcGIS Engine开发的汉化小技巧-来自arcchen和记忆De残骸
  5. 医院信息系统培训心得
  6. 多功能扩音器索爱S-318,教师、导游们的辅助神器
  7. 创建oracle数据库实例
  8. [工作笔记之一] 转正答辩 2015-08-04 15:08
  9. rtf文件怎么打开_什么是RTF文件(以及如何打开一个文件)?
  10. 在消费决策上,读懂当代年轻人的B面!