在执行并发批量加载操作时,我收到此错误。随后,我所有的查询都失败了,而且我不断收到同样的错误。
我得到的异常如下:
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)
一些额外的上下文:
如果有人能告诉我是什么原因造成的,那就太好了。 谢谢!
最佳答案
如果 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/
相关文章:
python - pandas 将嵌套字典转换为 mutiIndex 行和列
c# - 在 Visual Studio 2019 中添加带有 css 类的 div 的键盘快捷方式
python - "Chrome not reachable"在非 headless 模式下使用 X
reactjs - Auth0 并使用react,将用户重定向到注册页面
ios - GeometryReader 在 SwiftUI 中占用额外空间
swift - 使用 Storyboard将 Collection View 布局设置为组合布局
google-cloud-platform - 使用 GCP AutoML 进行自定义实体提取的预测