docker - 尝试在 JanusGraph-Docker 中创建图形时连接被拒绝
问题描述
我正在使用 JanusGraph-Docker 图像 ( https://github.com/JanusGraph/janusgraph-docker ) 在 Docker 中设置 JanusGraph。当我在没有 docker 的情况下使用 JanusGraph 时,一切对我来说都很好,但现在我遇到了一些问题:
我使用以下命令来设置带有 Cassandra+Elasticsearch 的 janusgraph:
docker-compose -f docker-compose-cql-es.yml up
这将启动所有必需的容器,我仔细检查了这些容器:
docker ps
现在我想通过 Gremlin 控制台连接到 Janusgraph:
docker-compose -f docker-compose-cql-es.yml run --rm -e GREMLIN_REMOTE_HOSTS=janusgraph janusgraph ./bin/gremlin.sh
这将启动 gremlin 控制台,我使用以下命令配置遥控器:
:remote connect tinkerpop.server conf/remote.yaml
:remote console
这也很好。之后,我尝试创建一个新图表,但失败并显示:
graph = JanusGraphFactory.open('conf/janusgraph-cassandra-es.properties')
这给了我以下信息:
连接被拒绝(连接被拒绝)
全栈跟踪:
java.net.ConnectException:在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl. java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:589) 在org.apache.thrift.transport.TSocket.open(TSocket.java:182) 在 org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81) 在 org.janusgraph.diskstorage.cassandra.thrift.thriftpool。 CTConnectionFactory.makeRawConnection(CTConnectionFactory.java:110) 在 org.janusgraph.diskstorage.cassandra.thrift.thriftpool。CTConnectionFactory.makeObject(CTConnectionFactory.java:74) at org.janusgraph.diskstorage.cassandra.thrift.thriftpool.CTConnectionFactory.makeObject(CTConnectionFactory.java:43) at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool. java:1220) 在 org.janusgraph.diskstorage.cassandra.thrift.CassandraThriftStoreManager.(CassandraThriftStoreManager.java:197) 在 sun.reflect. NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:58) at org.janusgraph.diskstorage.Backend.getImplementationClass(Backend.java:440)在 org.janusgraph.diskstorage.Backend.getStorageManager(Backend.java:411) 在 org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder.build(GraphDatabaseConfigurationBuilder.java:50) 在 org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory .java:161) 在 org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:132) 在 org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:79) 在 org.janusgraph.core.JanusGraphFactory$open。在 org.apache.tinkerpop.gremlin.groovy.jsr223 的 Script4.run(Script4.groovy:1) 处调用(未知来源)。GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:674) at org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:376) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) at org .apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) 在 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)org.apache.tinkerpop.gremlin.groovy.jsr223 的 eval(GremlinGroovyScriptEngine.java:674).GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:376) 的 javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) .tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.Executors$RunnableAdapter。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor 的 java.util.concurrent.FutureTask.run(FutureTask.java:266) 调用(Executors.java:511) $Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)org.apache.tinkerpop.gremlin.groovy.jsr223 的 eval(GremlinGroovyScriptEngine.java:674).GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:376) 的 javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) .tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.Executors$RunnableAdapter。在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor 的 java.util.concurrent.FutureTask.run(FutureTask.java:266) 调用(Executors.java:511) $Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:376) 在 javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) 在 org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) ) 在 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)GremlinGroovyScriptEngine.eval(GremlinGroovyScriptEngine.java:376) 在 javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) 在 org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) ) 在 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.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 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。在 java.lang.Thread.run(Thread.java:748) 处运行(ThreadPoolExecutor.java:624)gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:266) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 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。在 java.lang.Thread.run(Thread.java:748) 处运行(ThreadPoolExecutor.java:624)runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)
我可以运行如下查询,因为 janusgraph 服务器似乎预先部署了一个带有遍历对象的图:
g.addV('user').property('username','exampleUserName')
但是当我尝试从 python gremlin 连接时:
graph = Graph()
g = graph.traversal().withRemote(DriverRemoteConnection('ws://0.0.0.0:8182/gremlin','g'))
我得到同样的错误,有什么帮助吗?
解决方案
Note that when your server listens on 0.0.0.0
, that means it will be accessible from machines other than the one that it's running on. The alternative of listening on 127.0.0.1
means it will only be accessible from processes on the same host as the server is running.
However, when your client is connecting to a server, it must specify the actual hostname or IP address it is connecting to, which could be localhost
or 127.0.0.1
or whatever is the IP address that the server is connected to on the network. However, you cannot use 0.0.0.0
in the connection string from the client to the server, as that's not a valid IP address to connect to.
推荐阅读
- python - 为什么 `True 和 ~True` -2?
- android - 有没有办法从位图创建 Uri 但我不想在图片库中看到它?
- objective-c - 在 dispatch_release 之后调用 dispatch_semaphore_signal 是否有任何问题(无 ARC 案例)?
- javascript - Promise中executor函数的作用是什么
- javascript - 使用 vanilla JS 向动态创建的 html 元素添加点击事件
- python - ValueError:未知层:RBFLayer
- ajax - 让rails在按键上通过AJAX提交form_with
- vb.net - 在 VB.NET 中插入没有循环的表
- javascript - 如何触发本机默认 Internet Explorer 上下文菜单,就好像用户右键单击特定 div 并在页面上加载并准备好 ID?
- android - 以编程方式使用 OTG(USB 打印机)从 sd 卡打印 pdf 文件