问题标签 [janusgraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
350 浏览

cassandra - Cassandra Titan/JanusGraph 原子性

我们计划使用 Cassandra 和 Titan/JanusGraph db 的组合作为我们其中一个项目的后端。作为其中的一部分,我有以下要求。

Record/Vertex A 和 Record/Vertex B 应该以原子方式写入后端,即要么两条记录都写入,要么都不写入。本质上,我需要多行原子写入。但是,从下面列出的 Titan 和 Cassandra 的文档中,这就是我发现的。

泰坦数据库

Titan 事务不一定是 ACID。它们可以在 BerkleyDB 上进行如此配置,但在 Cassandra 或 HBase 上通常不会如此,因为底层存储系统不提供可序列化的隔离或多行原子写入,并且模拟这些属性的成本会很高

卡桑德拉 2.0

在 Cassandra 中,写入在分区级别是原子的,这意味着在一行中插入或更新列被视为一次写入操作。

卡桑德拉 3.0

在 Cassandra 中,写入操作在分区级别是原子的,这意味着同一分区中两行或多行的插入或更新被视为一次写入操作。

我有以下问题。

1) 我们将 Titan DB 与 Cassandra 2.1.X 一起使用。如果我想实现多行原子性,我该怎么做?有什么解决方案可以实现这一目标吗?

2) 我看到 Cassandra 批处理操作为多个操作提供了原子性?但我在 Titan DB 中没有看到相应的操作来使用此功能。我在这里遗漏了一些东西还是有什么方法可以使用它?

3)由于 Cassandra 在各种应用程序中大量使用,我很确定人们有需要多行原子操作的用例。人们如何解决这个问题?

4) 我看到 Cassandra 3.0 有这个支持。那么当 JanusGraph 开始支持 Casandra 3.0 时(目前它只支持 2.1.x),我应该期待 JanusGraph 的这种支持吗?

0 投票
1 回答
3321 浏览

hadoop - 为 Spark 集群和 Cassandra 设置和配置 JanusGraph

我在一台机器上运行 JanusGraph (0.1.0) 和 Spark (1.6.1)。我按照此处所述进行了配置。使用 SparkGraphComputer 访问 gremlin-console 上的图形时,它始终为空。我在日志文件中找不到任何错误,它只是一个空图。

是否有人将 JanusGraph 与 Spark 一起使用并且可以共享他的配置和属性?

使用 JanusGraph,我得到了预期的输出:

使用带有 Spark 作为 GraphComputer 的 HadoopGraph,该图是空的:

我的 conf/test.properties:

HDFS 似乎配置正确,如此所述:

0 投票
2 回答
1231 浏览

java - JanusGraph 输出子图为 GraphSON 错误

我正在尝试使用 JanusGraph 在 Gremlin shell 中将子图输出为 GraphSON。

TinkerPop 文档供参考: http ://tinkerpop.apache.org/docs/current/reference/#graphson-reader-writer

但是,当我编写完整的图表时,它可以正常工作,但是,当我想编写使用这些命令查询过的子图表时:

我使用相同的写入命令:

我收到此错误:

(是 java.lang.IllegalStateException)(通过引用链:org.janusgraph.graphdb.relations.RelationIdentifier["inVertexId"])

环顾四周,我发现另一个线程说我需要导入一个包才能正确执行此操作(对于 TitanGraph,但我认为它也适用于 JanusGraph):Import package in gremlin

但是,每当我尝试导入时:

我收到此错误:

无效的导入定义:'com.thinkaurelius.titan.graphdb.tinkerpop.io.graphson.TitanGraphSONModule';原因:启动失败:script1494618250861805544050.groovy:1:无法解析类 com.thinkaurelius.titan.graphdb.tinkerpop.io.graphson.TitanGraphSONModule @ 第 1 行,第 1 列。导入 com.thinkaurelius.titan.graphdb.tinkerpop.io。 graphson.TitanGraphSON模块 ^

1 个错误

如何使用 JanusGraph 在 Gremlin shell 中将子图输出为 GraphSON?

0 投票
1 回答
294 浏览

cassandra - cassandra 是否无法存储跨分区大小限制的关系?

我注意到由于其 100MB 分区限制,关系无法正确存储在 C* 中,非规范化在这种情况下无济于事,而且 C* 每个分区可以有 2B 单元,因为只有 Longs 的那些 2B 单元有 16GB ?!?!? 这不是超过 100MB 分区大小限制吗?

这是我一般不明白的,C* 宣称它可以有 2B 个单元,但分区大小不应该超过 100MB ???

这样做的惯用方法是什么?人们说这是 TitanDB 或 JanusDB 的理想用例,可以很好地扩展数十亿个节点和边缘。这些在后台使用 C* 的数据库如何对它进行数据建模?

我的用例在这里描述https://groups.google.com/forum/#!topic/janusgraph-users/kF2amGxBDCM

请注意,我完全清楚这个问题的答案是“使用额外的分区键来减小分区大小”,但老实说,我们当中谁有这种可能性?特别是在建模关系中......我对特定时间发生的关系不感兴趣......

0 投票
2 回答
857 浏览

hadoop - Janusgraph 火花番石榴版

这是我的问题:

我们使用 cloudera 5.7.0 和 java 1.8.0_74,我们有 spark 1.6.0、janusgraph 0.1.1、hbase 1.2.0。

我在 gremlin shell 中运行以下代码:

它开始执行 spark 作业,第一阶段运行顺利,但是在第二阶段我得到一个异常:

我认为这是一个番石榴版本问题

这是我启动 gremlin shell 的方法

这是我的 conf/hadoop-graph/hadoop-call-script.properties 文件:

如果我将“spark.master=yarn-client”行更改为“spark.master=local[*]”,那么它会完美运行并将数据加载到 janusgraph,不会引发异常。但是我需要使用纱线,这对我来说是必须的。因此,我将 guava-18.0.jar 添加到 hdfs 并将行“spark.executor.extraClassPath=hdfs:///user/me/guava-18.0.jar”添加到 hadoop-call-script.properties。它没有解决问题。

目前我没有想法和无助,任何帮助表示赞赏。

不是:我知道 mvn 着色与此问题有关,但是在这种情况下,由于我使用 janusgraph 代码创建火花作业,我无法干预和着色番石榴包。

提前谢谢,阿里

0 投票
1 回答
374 浏览

cassandra - janusgraph键空间下的cassandra中缺少vertex_ids表?

Titan 图与 cassandra 一起使用时会在“titan”键空间下创建一个表“vertex_ids”。但是在使用 janus 时,我似乎无法在“janusgrpah”键空间下找到“vertex_ids”表。我还阅读了文档,其中描述了值的存储方式,但没有说明在哪些表下。

0 投票
1 回答
616 浏览

neo4j - 我应该使用 TitanDB 吗?

我正在考虑使用 TitanDB。它似乎真的符合我们的需求(我们可以完全控制存储引擎,并且可以在 DynamoDB 之上构建它)。但是,我担心该项目不再维护并且创建了一个分支 JanusGraph 来继续该项目。使用 TitanDB 仍然安全吗?我应该改用 JanusGraph(它是否已准备好投入生产,是否可以使用 DynamoDB 将其部署在 AWS 上)?

0 投票
2 回答
311 浏览

performance - 在不迭代顶点的情况下访问边

我目前正在 hadoop 环境中使用 janusGraph。我已经在图中加载了更多的顶点(大约一百万)并获得了主键运行的索引。迭代每个顶点大约需要 3 分钟。我的图中目前有 0 条边。

为了加载我的图形边缘,我正在读出一个包含数据的 csv 文件。由于我有时会面临超时(由于环境),我一直在寻找顶点数,然后跳到 csv 中的正确行,重新开始加载。

但是,要求对我的 edge-csv 文件执行相同操作的边数大约需要 4 分钟,并且会为我的 tinkerpopserver 产生超时。

有没有办法在不迭代每个顶点的情况下获得图中边的总数?

添加边本身可以正常工作,因为顶点的复合索引非常快。

0 投票
2 回答
592 浏览

java - 泛化 DynamoDB + JanusGraph Factory:锁和架构问题

我正在从 AWS 推广 DynamoDB + JanusGraph 教程,这样,给定具有标准约定的标准 .txt 文件,程序可以摄取数据(作为三元组)并创建顶点、属性和边。通常我不会发布这么长的问题,但似乎这些都与我创建的同一个类 ObjectCreationCommand 中的 4-5 行有关。

Triple 的示例如下所示:"name:Jim Henson \t isCreatorOf \t televisionshow:The Muppets"

  1. 左对象:吉姆汉森
  2. 左对象属性:名称
  3. 关系:isCreatorOf
  4. 正确的对象:布偶
  5. 正确的对象属性:电视节目

尽管程序编译并运行,但我得到了几个异常,这些异常阻止了图形被填充。当我运行 Factory 程序时,它会读取我所有的三元组并将它们放入一个哈希集中,但随后会出现以下错误(10 次,但这只是 1 个示例):

接下来,抛出一个类似的异常:

然后抛出与模式相关的异常:

最后,抛出了一个我真的不明白的异常:

因为最终事务是 Null,所以会抛出 NullPointerException 并且永远不会提交事务;因此,我的图表已初始化但为空。

通常我不会发布这么长的问题,但似乎这些都与我创建的同一个类 ObjectCreationCommand 中的 4-5 行有关。

ObjectCreationCommand.java

上面的异常表明所有错误都来自该类的第 47、55 或 59 行:

谁能帮助确定我在这门课上做错了什么?无论我在做什么都是锁定表并创建模式问题。

0 投票
2 回答
796 浏览

sbt - 如何通过 SBT 使用 DynamoDB Janusgraph 存储后端?

我开始了一个使用 JanusGraph 作为库依赖项的 Scala 项目:

"org.janusgraph" % "janusgraph-core" % "0.1.1",

该项目当前使用inmemory存储后端。但是我想使用 DynamoDB 来持久化我的图表并最终在 AWS 上部署应用程序。

我找到了 JanusGraph 的 DynamoDB 插件https://github.com/awslabs/dynamodb-janusgraph-storage-backend并按照指南运行 Marvel Universe 示例。但是,当我尝试将库添加到我的build.sbt文件时:

"com.amazonaws" % "dynamodb-janusgraph-storage-backend" % "1.1.0"

它说找不到库。