docker - Not able to connect to cassandra from host machine -
i have configured cassandra node on mac book pro using docker follows
vboxmanage modifyvm "default" --natpf1 "tcp-port7191,tcp,,7191,,7191" vboxmanage modifyvm "default" --natpf1 "tcp-port7000,tcp,,7000,,7000" vboxmanage modifyvm "default" --natpf1 "tcp-port7001,tcp,,7001,,7001" vboxmanage modifyvm "default" --natpf1 "tcp-port9160,tcp,,7160,,7160" vboxmanage modifyvm "default" --natpf1 "tcp-port9042,tcp,,9042,,9042"
(restart machine)
docker run --name c1 -v /users/myprojects/scripts/:/script -d cassandra:latest -p "7191:7191" -p "7000:7000" -p "7001:7001" -p "9160:9160" -p "9042:9042"
i can do
docker exec -it c1 cqlsh
it says
connected test cluster @ 127.0.0.1:9042. [cqlsh 5.0.1 | cassandra 3.0.1 | cql spec 3.3.1 | native protocol v4] use help.
now ip address of virtual box vm using
docker-machine env default
i can see ip address of 192.168.99.100
but when run java program connect same cassandra instance using ip address above. error
00:00:56.611 [cluster1-nio-worker-0] debug com.datastax.driver.core.connection - connection[/192.168.99.100:9042-1, inflight=0, closed=false] error connecting /192.168.99.100:9042 (connection refused: /192.168.99.100:9042) 00:00:56.615 [cluster1-nio-worker-0] debug com.datastax.driver.core.host.states - defuncting connection[/192.168.99.100:9042-1, inflight=0, closed=false] because: [/192.168.99.100] cannot connect 00:00:56.616 [cluster1-nio-worker-0] debug com.datastax.driver.core.connection - connection[/192.168.99.100:9042-1, inflight=0, closed=true] closing connection 00:00:56.617 [cluster1-nio-worker-0] debug com.datastax.driver.core.host.states - [/192.168.99.100:9042] preventing new connections next 1000 ms 00:00:56.617 [cluster1-nio-worker-0] debug com.datastax.driver.core.host.states - [/192.168.99.100:9042] connection[/192.168.99.100:9042-1, inflight=0, closed=true] failed, remaining = 0 00:00:56.624 [run-main-0] debug c.d.driver.core.controlconnection - [control connection] error on /192.168.99.100:9042 connection, no more host try com.datastax.driver.core.exceptions.transportexception: [/192.168.99.100] cannot connect @ com.datastax.driver.core.connection$1.operationcomplete(connection.java:157) ~[cassandra-driver-core-3.0.0.jar:na] @ com.datastax.driver.core.connection$1.operationcomplete(connection.java:140) ~[cassandra-driver-core-3.0.0.jar:na] @ io.netty.util.concurrent.defaultpromise.notifylistener0(defaultpromise.java:680) ~[netty-common-4.0.33.final.jar:4.0.33.final] @ io.netty.util.concurrent.defaultpromise.notifylisteners0(defaultpromise.java:603) ~[netty-common-4.0.33.final.jar:4.0.33.final] @ io.netty.util.concurrent.defaultpromise.notifylisteners(defaultpromise.java:563) ~[netty-common-4.0.33.final.jar:4.0.33.final] @ io.netty.util.concurrent.defaultpromise.tryfailure(defaultpromise.java:424) ~[netty-common-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.abstractniochannel$abstractniounsafe.fulfillconnectpromise(abstractniochannel.java:276) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.abstractniochannel$abstractniounsafe.finishconnect(abstractniochannel.java:292) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.nioeventloop.processselectedkey(nioeventloop.java:528) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.nioeventloop.processselectedkeysoptimized(nioeventloop.java:468) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.nioeventloop.processselectedkeys(nioeventloop.java:382) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.nioeventloop.run(nioeventloop.java:354) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.util.concurrent.singlethreadeventexecutor$2.run(singlethreadeventexecutor.java:112) ~[netty-common-4.0.33.final.jar:4.0.33.final] @ java.lang.thread.run(thread.java:745) ~[na:1.7.0_79] caused by: java.net.connectexception: connection refused: /192.168.99.100:9042 @ sun.nio.ch.socketchannelimpl.checkconnect(native method) ~[na:1.7.0_79] @ sun.nio.ch.socketchannelimpl.finishconnect(socketchannelimpl.java:739) ~[na:1.7.0_79] @ io.netty.channel.socket.nio.niosocketchannel.dofinishconnect(niosocketchannel.java:224) ~[netty-transport-4.0.33.final.jar:4.0.33.final] @ io.netty.channel.nio.abstractniochannel$abstractniounsafe.finishconnect(abstractniochannel.java:289) ~[netty-transport-4.0.33.final.jar:4.0.33.final] ... 6 common frames omitted 00:00:56.625 [run-main-0] debug com.datastax.driver.core.cluster - shutting down [error] (run-main-0) java.lang.exceptionininitializererror java.lang.exceptionininitializererror @ com.abhi.connector.cassandraconnector$class.$init$(cassandraconnector.scala:8) @ com.abhi.models.movies$.<init>(movies.scala:25) @ com.abhi.models.movies$.<clinit>(movies.scala) @ com.abhi.movielensdatapreperation$$anonfun$storeincassandra$1.apply(movielensdatapreperation.scala:55) @ com.abhi.movielensdatapreperation$$anonfun$storeincassandra$1.apply(movielensdatapreperation.scala:55) @ scala.collection.immutable.list.foreach(list.scala:381) @ com.abhi.movielensdatapreperation$.storeincassandra(movielensdatapreperation.scala:55) @ com.abhi.movielensdatapreperation$.main(movielensdatapreperation.scala:51) @ com.abhi.movielensdatapreperation.main(movielensdatapreperation.scala) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) caused by: com.datastax.driver.core.exceptions.nohostavailableexception: host(s) tried query failed (tried: /192.168.99.100:9042 (com.datastax.driver.core.exceptions.transportexception: [/192.168.99.100] cannot connect)) @ com.datastax.driver.core.controlconnection.reconnectinternal(controlconnection.java:231) @ com.datastax.driver.core.controlconnection.connect(controlconnection.java:77) @ com.datastax.driver.core.cluster$manager.init(cluster.java:1414) @ com.datastax.driver.core.cluster.init(cluster.java:162) @ com.datastax.driver.core.cluster.connectasync(cluster.java:333) @ com.datastax.driver.core.cluster.connect(cluster.java:283) @ com.abhi.connector.connector$.<init>(cassandraconnector.scala:22) @ com.abhi.connector.connector$.<clinit>(cassandraconnector.scala) @ com.abhi.connector.cassandraconnector$class.$init$(cassandraconnector.scala:8) @ com.abhi.models.movies$.<init>(movies.scala:25) @ com.abhi.models.movies$.<clinit>(movies.scala) @ com.abhi.movielensdatapreperation$$anonfun$storeincassandra$1.apply(movielensdatapreperation.scala:55) @ com.abhi.movielensdatapreperation$$anonfun$storeincassandra$1.apply(movielensdatapreperation.scala:55) @ scala.collection.immutable.list.foreach(list.scala:381) @ com.abhi.movielensdatapreperation$.storeincassandra(movielensdatapreperation.scala:55) @ com.abhi.movielensdatapreperation$.main(movielensdatapreperation.scala:51) @ com.abhi.movielensdatapreperation.main(movielensdatapreperation.scala) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606)
this code configure java connection
cluster.builder() .addcontactpoints("192.168.99.100").withport(9042) .build()
edit: replaced above ip address ip address of docker guest vm... did not resolve issue.
i able solve problem using cassandra_broadcast_address when creating docker container
this command used
docker run --name c1 -v /users/myprojects/scripts/:/script -d -p "7191:7191" -p "7000:7000" -p "7001:7001" -p "9160:9160" -p "9042:9042" -e cassandra_broadcast_address=192.168.99.100 cassandra:latest
after creating container this. able connect scala application code
val keyspace: keyspace = new keyspace("foo") val cluster = cluster.builder() .addcontactpoint("192.168.99.100").withport(9042) .build() cluster.getconfiguration().getsocketoptions().setreadtimeoutmillis(100000); val session: session = cluster.connect(keyspace.name)
Comments
Post a Comment