JanusGraph与Cassandra集成模式

//如果使用的是cassandra 2.2或更高版本,需要开启thift,以使janus连接到cassandra。
./bin/nodetool enablethrift.

15.1 Local Server Mode

在该模式下,cassandra作为一个独立应用与Janus运行在同一个localhost下,此时JanusGraph与Cassandra通过Localhost socket通信。运行步骤如下;

  • 下载cassandra,解压,并在conf/cassandra.yaml和conf/log4j-server.properties中设置文件系统路径。
  • 通过bin/cassandra -f启动cassandra,并检查是否启动成功

下面即可创建一个JanusGraph了。

JanusGraph g =JanusGraphFactory.build().
set("storage.backend","cassandra").
set("storage.hostname","127.0.0.1").
open();

注意:在gremlin shell中,不能定义变量conf和g,所以去掉变量声明。

该模式比较适用于测试,且Janus与Casssandra运行于统一节点。

15.2 Remote Server Mode

当图需要扩展时,cassandra以集群方式存在, Cassandra与Janus被逻辑上分隔在不同的主机上。在该模式中,Cassandra保存图的数据;而多个janus实例通过维持基于socket的读/写来访问cassandra集群。应用端可以在同一JVM中使用Janus访问。

如下假如cassandra的地址为:192.168.66.149,则连接代码如下:

JanusGraph graph =JanusGraphFactory.build().
set("storage.backend","cassandra").
set("storage.hostname","192.168.66.149").
open();

如果是Gremlin客户端,去掉下划线部分。

连接成功后如下所示:

15.3 Remote Server Mode with Germlin Server

Gremlin Server可以被设置为包围着每个JanusGraph实例,在该模式下,客户端通过作为一个Gremlin Client的方式与Gremlin Server通信,并将请求由Gremlin Server交由JanusGraph进行处理。此种方式支持多语言环境。

使用bin/gremlin-server.sh启动,然后在外部的Gremlin.sh Session就可以通过如下语句通信:

:plugin use tinkerpop.server
:remote connect tinkerpop.server conf/remote.yaml
:> g.addV()

在此种情况下,每个Gremlin Server都必须配置连接到casandra集群中,下面是一个配置片段,详情见:http://docs.janusgraph.org/latest/server.html

...
graphs:{
g: conf/janusgraph-cassandra.properties}
plugins:
- janusgraph.imports
...

关于Gremlin Server的更详细信息参见:http://tinkerpop.apache.org/docs/3.2.3/reference#gremlin-server

15.4 JanusGraph Embedded Mode

最后,cassandra也可以嵌入到JanusGraph中去,在此种部署方式下,JanusGraph启动Cassandra,并通过进程通信,能够显著提升查询性能,但由于共用一个JVM,需要性能调优。

配置详见:http://docs.janusgraph.org/latest/cassandra.html#_janusgraph_embedded_mode

15.5 Cassandra Specific Configuration

参考第12章:Configuration Reference(http://docs.janusgraph.org/latest/config-ref.html )获取更详细信息:

当配置cassandra时,推荐考虑如下几个方面:

  • read-consistency-level
  • write-consistency-level
  • replication-factor:复制因子,用于控制数据复制的分数,提高鲁棒性,3是一个常用的配置。该配置只在创建Keyspace时可用,对已有的keyspace则忽略。
  • thrift.frame_size_mb:thift帧大小,如果要传送大数据,需要调高,仅在storage.backend=cassandrathift时可用
  • keyspace:存储JanusGraph的keyspace,允许多个JanusGraph保存在Cassandra集群中

更多关于一致性的信息参见:Cassandra thift API,但一般一致性越高,延迟越高。

15.6 Global Graph Operations

在Cassandra之上的JanusGraph支持全局点/边遍历,但需要将全部数据加载到内存,可能引起OOM。更多参见:33章,JanusGraph With TinkerPop‘s Hadoop-Germlin来更有效的遍历。

时间: 2024-10-10 23:56:02

JanusGraph与Cassandra集成模式的相关文章

GoldenGate系列之集成模式

一.集成模式进程配置1.用户授权:exec dbms_goldengate_auth.grant_admin_privilege('goldengate');2.参数调整:alter system set streams_pool_size=12g scope=spfile;3.执行注册:dblogin userid goldengate password xxxregister extract capture01 database4.增加extract进程方法一:add extract cap

asp.net web.config 经典模式和集成模式相关配置

<?xml version="1.0"?> <configuration> <!--IIS经典模式下使用--> <system.web> <httpHandlers> <add path="request.aspx" verb="*" type=" Bll.Handler.Test"/> <add path="test.aspx"

IIS8集成模式下打开静态资源被aspx处理程序处理,StaticFileModule失效问题分析

问题描述: 打开js,css,jpg之类的静态资源文件触发了asp.net mvc的权限认证,并不是直接返回静态内容 问题分析: StaticFileModule 失效 ,可能是文件权限问题 问题解决: 由于在集成模式下,默认进程标识是应用程序池名称相同的"用户", 如应用程序池为 tom, 那么在进程管理器中,w3wp.exe的用户即为tom 而IIS中要动态的为这种标识设计权限则需要同时给 IIS_IUSERS组  和  IUSR组设置完全控制权限!!! 记得是同时设置. 如果仅给

Sql Server2012 报表服务中的SharePoint集成模式配置

前言 http://www.microsoft.com/zh-CN/download/details.aspx?id=29068# 在sql server2012报表配置管理器上没有“sharepint集成”模式选择项(采用新建),如下图: 怎么回事情呢?后来通过查询资料才知道,如下: 重要提示 从 SQL Server 2012 版本开始,Reporting Services 配置管理员不设计用来管理 SharePoint 模式报表服务器. SharePoing 模式通过使用 SharePoi

IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求

今天将开发好的ASP.NET站点部署到客户的服务器上后,发现了一个非常头疼的问题,那么就是IIS7的应用程序池是集成模式的话,ASP.NET项目中自定义的HttpModule会处理静态文件(.html .css .js .jpeg等)请求,而这不是我预期的效果,因为我只想让托管文件(aspx, ascx 及 MVC等)的请求被自定义HttpModule处理,但是我发现在IIS7的集成模式下所有请求都会进入HttpModule被处理. 后来我尝试将IIS7站点下的应用程序池改为了经典模式,这样的话

IIS7 应用程序池的 托管管道模式与集成模式小结【转帖】

IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解 IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员尤其有用,因为这样既可以令一台服务器仅运行一种模式,也可以令两种模式同时运行于一台服务器上. 上述两种管道模式使用的web.config文件存在重大的区别,许多在经典管道模式下能够正常工作的web.c

Centos启动Cassandra交互模式失败

在CentOS6.5安装好Cassandra后,启动交互模式: bin/sqlsh 192.168.10.154 时,报错 No appropriate python interpreter found 这个错误是因为CentOS系统中默认安装的是2.6,而Cassandra需要Python2.7以上,因此只能重新安装python CentOS安装Python2.7,参考:http://ruter.sundaystart.net/2015/12/03/Update-python/ 注意的是:最新

IIS7.5应用程序池集成模式和经典模式的区别【转】

由于最近公司服务器上需要将iis的应用程序池全部都升级到4.0的框架,当然选择4.0就肯定使用集成模式部署.升级过程中出现了比较多的问题,前面文章也提到过几个.这次就主要介绍下httpHandler 和 httpModule 在集成和经典模式下的区别.很多文件上传等都是需要使用到httpModule去实现.我今天就出现了NeatUpload在iis7.5下出现未将对象引用到设计实例的错误.所以用httpModule作为测试案例. 新建测试网站WebApplication,加入MyHttpModu

IIS经典模式集成模式的区别(转载)

在 IIS Metabase 中维护着 Application Pool 和 Worker Process 的Mapping.WAS(Web Administrative Service)根据这样一个 mapping,将存在于某个 Application Pool Queue 的 request 传递到对应的 Worker Process (如果没有,就创建这样一个进程).在 Worker Process 初始化的时候,加载 ASP.NET ISAPI,ASP.NET ISAPI 进而加载 CL