启动gremlin - server服务时报如下异常:
34180 [main] WARN org.janusgraph.graphdb.database.idassigner.placement.PartitionIDRange - Individual key range is too small for partition block - result would be empty; hence ignored: KeyRange(left: 250-225- 71-129, right: 0- 0- 0- 0)
34180 [main] INFO org.janusgraph.graphdb.database.IndexSerializer - Hashing index keys
34185 [main] INFO org.janusgraph.diskstorage.log.kcvs.KCVSLog - Loaded unidentified ReadMarker start time 2020-02-19T03:15:59.261Z into org.janusgraph.diskstorage.log.kcvs.KCVSLog$MessagePuller@422ad5e2
35478 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - java.lang.IllegalArgumentException: Vertex Label with given name does not exist: user
35479 [main] ERROR org.apache.tinkerpop.gremlin.server.GremlinServer - Gremlin Server Error
java.lang.IllegalStateException: Could not create/configure Authenticator null
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.createAuthenticator(AbstractChannelizer.java:204)
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.init(AbstractChannelizer.java:150)
at org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer.init(WsAndHttpChannelizer.java:39)
at org.apache.tinkerpop.gremlin.server.GremlinServer.start(GremlinServer.java:162)
at org.apache.tinkerpop.gremlin.server.GremlinServer.main(GremlinServer.java:346)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Vertex Label with given name does not exist: user
at org.janusgraph.graphdb.tinkerpop.gremlin.server.auth.JanusGraphAbstractAuthenticator.createUser(JanusGraphAbstractAuthenticator.java:143)
at org.janusgraph.graphdb.tinkerpop.gremlin.server.auth.JanusGraphAbstractAuthenticator.setup(JanusGraphAbstractAuthenticator.java:119)
at org.janusgraph.graphdb.tinkerpop.gremlin.server.auth.JanusGraphSimpleAuthenticator.setup(JanusGraphSimpleAuthenticator.java:37)
at org.apache.tinkerpop.gremlin.server.AbstractChannelizer.createAuthenticator(AbstractChannelizer.java:200)
... 4 more
Caused by: java.lang.IllegalArgumentException: Vertex Label with given name does not exist: user
at org.janusgraph.graphdb.types.typemaker.DisableDefaultSchemaMaker.makeVertexLabel(DisableDefaultSchemaMaker.java:52)
at org.janusgraph.graphdb.transaction.StandardJanusGraphTx.getOrCreateVertexLabel(StandardJanusGraphTx.java:1068)
at org.janusgraph.graphdb.tinkerpop.JanusGraphBlueprintsTransaction.addVertex(JanusGraphBlueprintsTransaction.java:117)
at org.janusgraph.graphdb.tinkerpop.JanusGraphBlueprintsGraph.addVertex(JanusGraphBlueprintsGraph.java:141)
at org.janusgraph.graphdb.tinkerpop.JanusGraphBlueprintsGraph.addVertex(JanusGraphBlueprintsGraph.java:59)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep.map(AddVertexStep.java:81)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep.map(AddVertexStep.java:43)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.MapStep.processNextStart(MapStep.java:37)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:197)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.CoalesceStep.flatMap(CoalesceStep.java:58)
at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:49)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
at org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectStep.processNextStart(SideEffectStep.java:38)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50)
at org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38)
at org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:206)
at org.apache.tinkerpop.gremlin.groovy.jsr223.dsl.credential.DefaultCredentialTraversal.iterate(DefaultCredentialTraversal.java:28)
at org.janusgraph.graphdb.tinkerpop.gremlin.server.auth.JanusGraphAbstractAuthenticator.createUser(JanusGraphAbstractAuthenticator.java:139)
... 7 more
35481 [main] ERROR org.apache.tinkerpop.gremlin.server.GremlinServer - Gremlin Server was unable to start and will now begin shutdown: Could not create/configure Authenticator null
解决问题
思路一
异常中提到了不存user
这个顶点的Label。而这个label需要存在用户名密码信息。所以需要预告创建好user
这个label。
依次执行:
cd ${JanusGraph}
./bin/gremlin.sh
依次执行:
graph = JanusGraphFactory.open('conf/janusgraph-berkeleyje.properties')
g = graph.traversal()
mgmt = graph.openManagement()
mgmt.makeVertexLabel('user').make()
mgmt.commit()
如果创建错了,可以使用以下语句删除该Label
mgmt.getVertexLabel('user').remove()
仍然发现还是报同样的错,并且,注释掉authentication
用户名密码配置后,便不在报错了。
跟据验证的情况,在gremlin console中添加user的label操作是不可取的,因为这个label会在服务启动时自动创建好。
(待解决补充,目前暂注释掉配置了)