Janusgraph 连接到删除服务器无法实例化 CQLStoreManager 的实现

Janusgraph connect to remove server cannot instantiate implementation of CQLStoreManager

我是 运行 ec2 上的 cassandara 集群,janusgraph 节点也是另一个 ec2 实例。我有 janus graph(janusgraph.properties)

的这些属性文件
storage.backend = cassandra
storage.hostname = [xxx.xx.xx.xx] #its valid ip and is correct, just hidden

我做的是 gremlin coonsole

graph = JanusGraphFactory.open('janusgraph.properties')

似乎无法与 cassandra 连接,错误是

Could not instantiate implementation: org.janusgraph.diskstorage.cql.CQLStoreManager

看不懂

详细错误是:

java.lang.IllegalArgumentException: Could not instantiate implementation: org.janusgraph.diskstorage.cql.CQLStoreManager    at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:64)  at org.janusgraph.diskstorage.Backend.getImplementationClass(Backend.java:440)  at org.janusgraph.diskstorage.Backend.getStorageManager(Backend.java:411)   at org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder.build(GraphDatabaseConfigurationBuilder.java:50)  at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:161)   at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:132)   at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:79)    at org.janusgraph.core.JanusGraphFactory$open.call(Unknown Source)  at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)    at groovysh_evaluate.run(groovysh_evaluate:3)   at groovysh_evaluate$run.call(Unknown Source)   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)    at groovysh_evaluate$run.call(Unknown Source)   at org.codehaus.groovy.tools.shell.Interpreter.evaluate(Interpreter.groovy:77)  at org.codehaus.groovy.tools.shell.Evaluator$evaluate.call(Unknown Source)  at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:199)    at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.super$execute(GremlinGroovysh.groovy)     at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:144)   at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:72)  at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:120)    at org.codehaus.groovy.tools.shell.Shell$leftShift.call(Unknown Source)   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)    at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:93)  at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$work(InteractiveShellRunner.groovy)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:144)   at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:164)   at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:138)   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)     at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)   at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)     at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)  at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:156)     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:160)     at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:57)   at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$run(InteractiveShellRunner.groovy)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:144)   at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:164)   at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:97)     at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)   at org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:153)  at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)   at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:466) Caused by: java.lang.reflect.InvocationTargetException     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:58)  ... 69 more Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: []:9042 (com.datastax.driver.core.exceptions.TransportException: [[]:9042] Cannot connect))     at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:268)     at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:107)   at com.datastax.driver.core.Cluster$Manager.negotiateProtocolVersionAndConnect(Cluster.java:1652)   at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1571)     at com.datastax.driver.core.Cluster.init(Cluster.java:208)  at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:376)  at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:355)  at com.datastax.driver.core.Cluster.connect(Cluster.java:305)   at org.janusgraph.diskstorage.cql.CQLStoreManager.initializeSession(CQLStoreManager.java:302)   at org.janusgraph.diskstorage.cql.CQLStoreManager.<init>(CQLStoreManager.java:174)  ... 74 more

所以我想通了。

Janusgraph documentation 表示将其中一个节点放入集群中

storage.hostname = [一个 Cassandra-EC2 实例的 IP 地址]

因为它不是形式,我认为它是一个数组语法

xx.xx.xx.xx 替换 [xx.xx.xx.xx] 有效

我遇到了类似的问题,但 EC2 实例被管理员关闭,因此出现了问题。 一旦我重新启动 EC2 实例,问题就解决了。