gpt4 book ai didi

cassandra - JanusGraph 错误 : "Could not find type for id" during a concurrent load operation

转载 作者:行者123 更新时间:2023-12-05 07:12:20 24 4
gpt4 key购买 nike

在执行并发批量加载操作时,我收到此错误。随后,我所有的查询都失败了,而且我不断收到同样的错误。

我得到的异常如下:

java.lang.NullPointerException:找不到 id 的类型:52237 在 com.google.common.base.Preconditions.checkNotNull(Preconditions.java:250) 在 org.janusgraph.graphdb.types.vertices.JanusGraphSchemaVertex.name (JanusGraphSchemaVertex.java:57) 在 org.janusgraph.graphdb.vertices.AbstractVertex.label(AbstractVertex.java:121) 在 org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceElement.(ReferenceElement.java:57)在 org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex.(ReferenceVertex.java:46) 在 org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory.detach(ReferenceFactory.java:48) 在org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory.detach(ReferenceFactory.java:69) 在 org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory.detach(ReferenceFactory.java:80) 在org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy.halt(HaltedTraverserStrategy.java:60) 在 org.apache.tinke rpop.gremlin.server.util.TraverserIterator.next(TraverserIterator.java:64) 在 org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor.handleIterator(TraversalOpProcessor.java:529) 在 org.apache.tinkerpop。 gremlin.server.op.traversal.TraversalOpProcessor.lambda$iterateBytecodeTraversal$4(TraversalOpProcessor.java:382) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)

一些额外的上下文:

  1. storage.batch-loading 未启用
  2. 我正在运行的批量写入操作是高并发和高负载的
  3. 我使用了大约 100 个连接到 Cassandra/ES 后端的 gremlin 服务器实例
  4. 我没有明确定义架构

如果有人能告诉我是什么原因造成的,那就太好了。谢谢!

最佳答案

如果 gremlin-server 的多个实例正在运行,就会发生这种情况这是因为 gremlin 服务器未正确关闭或终止。这可能是因为运行 gremlin-server 的虚拟机可能已经重启。

所以解决方案是登录到 gremlin-console 并根据你的后端运行你的命令。在我的例子中是 cassandra 和 elasticsearch

所以我会跑

方法一

:远程连接tinkerpop.server conf/remote.yaml session

:远程控制台 session

graph=JanusGraphFactory.open('conf/janusgraph-cql-es.properties');

g=graph.traversal()

如果您正在运行容器,那么您的命令必须与此类似

graph=JanusGraphFactory.open('/etc/opt/janusgraph/janusgraph.properties');

g=graph.traversal()

现在运行完那些你就可以运行了

mgmt = graph.openManagement()

mgmt.getOpenInstances()

它将显示所有实例

例如

ac12000231-a9ffbcbb0e921

ac12000230-a9ffbcbb0e921(电流)

除了当前实例关闭其他实例

mgmt.forceCloseInstance('ac12000231-a9ffbcbb0e921')

关闭所有实例后提交更改

管理.commit()

现在重启你的 gremlin 服务器并运行你的查询它应该可以工作了

方法二

如果问题仍然存在,只需关闭您的 gremlin-server 并重新启动它几次...它应该可以工作

加载命令应该可以工作

发生这种情况的另一个原因是如果数据没有正确恢复..如果您正在使用集群,请在所有节点上进行备份然后在您的一个或多个目标节点上恢复

我使用 nodetool 进行备份,使用 sstableloader 进行数据恢复

关于cassandra - JanusGraph 错误 : "Could not find type for id" during a concurrent load operation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60432624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com