这是一个JANUSGRAPH v0.4.0学习实践的填坑排错集锦,文末持续更新篇,欢迎收藏或一块儿贡献!java
遇到新问题的同窗能够在下方留言讨论。shell
问题背景:已实如今后台使用addV()添加一些顶点数据,后台控制台能够查到,但执行下面代码输出为~0。vim
public static void main(String[] args) throws Exception {
GraphTraversalSource graph = traversal()
.withRemote(DriverRemoteConnection.using("my.host.com",8182,"g"));
List<Vertex> ls = graph.V().has("name").toList();
System.out.println("==="+graph.V().count().next());
System.out.println("==="+graph.getGraph());
for(Vertex v :ls){
System.out.println("========="+v.label()+"=======");
}
graph.close();
}
复制代码
在gremlin控制台添加顶点数据后,在java程序中查不到,结果为空,缘由是任何的图操做都会自动开启一个事务。若是事务没有提交,那么操做就不会生效。须要在gremlin控制台执行事务提交后才能查询到:bash
for (tx in graph.getOpenTransactions()) tx.commit()
复制代码
事务提交后便可在Java程序中查询刚才添加的数据。简单来讲就须要graph.tx().commit()
服务器
错误信息:The traversal source [g] for alias [g] is not configured on the server.curl
同上,据称ES没有正常运行也会遇到这个错误。elasticsearch
修改配置文件oop
vim janusgraph-hbase-es.properties
复制代码
在文件末尾添加以下配置:post
gremlin.graph=org.janusgraph.core.JanusGraphFactory
复制代码
保存后重启GremlinServer服务器,命令以下学习
/path_to_janus/janusgraph-0.4.0-hadoop2/bin/gremlin-server.sh stop /path_to_janus/conf/janusgraph-hbase-es.properties
/path_to_janus/janusgraph-0.4.0-hadoop2/bin/gremlin-server.sh start /path_to_janus/conf/janusgraph-hbase-es.properties
复制代码
java程序便可远程链接GremlinServer,查询数据无误。
错误信息:Caused by: java.lang.reflect.InvocationTargetException
在Gremlin命令行建立graph时报错java.lang.IllegalArgumentException: Could not instantiate implementation: org.janusgraph.diskstorage.es.ElasticSearchIndex
注:这在IDEA项目里用java代码访问JanusGraph时也会报一样的错,以前解决办法参考JanusGraph入门第一课:建立IDEA项目,但错误的缘由并不同,代码没有改动却报这个错误,这和E06很像,是同类型的错误。排查以下:
gremlin> graph = JanusGraphFactory.open('/opt/janusgraph/conf/janusgraph-hbase-es.properties')
复制代码
经 curl http://localhost:9200
检查相应正常。但不管如何修改httpclient依赖包仍是报错。经排查发现此时elasticsearch服务状态是red(因昨晚服务器所有掉电的缘故),将es的状态恢复到green以后,再次执行代码,直接就行了。随后用java代码读取数据一切正常。
能够看到:standardjanusgraph
巴拉巴拉……
找了很久,总算解决了。【2019-09-15更新】
JanusGraph问题与解决系列目录:
JanusGraph问题笔记(二)-SchemaViolationException
JanusGraph问题笔记(三):NoNodeException(hbase)
JanusGraph问题笔记(四):ResponseException(ES)