2013-05-11 13 views
6

Próbuję użyć nodetool przeciwko naszej bazy danych produkcji Cassandra. Ale otrzymuję wyjątek, gdy tylko spróbuję uruchomić nodetool przeciwko klastrze produkcyjnym Cassandra z mojej lokalnej maszyny.Błąd połączenia ze zdalnym agentem JMX! podczas uruchamiania Nodetool

S:\Apache Cassandra\apache-cassandra-1.2.3\bin>nodetool -h pdb.vip.phx.host.com compactionstats 
Starting NodeTool 
Error connecting to remote JMX agent! 
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error duri 
ng JRMP connection establishment; nested exception is: 
     java.net.SocketTimeoutException: Read timed out] 
     at javax.management.remote.rmi.RMIConnector.connect(Unknown Source) 
     at javax.management.remote.JMXConnectorFactory.connect(Unknown Source) 
     at org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:145) 
     at org.apache.cassandra.tools.NodeProbe.<init>(NodeProbe.java:115) 
     at org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:966) 
Caused by: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: error during JRMP connection establishment; nested exce 
ption is: 
     java.net.SocketTimeoutException: Read timed out] 
     at com.sun.jndi.rmi.registry.RegistryContext.lookup(Unknown Source) 
     at com.sun.jndi.toolkit.url.GenericURLContext.lookup(Unknown Source) 
     at javax.naming.InitialContext.lookup(Unknown Source) 
     at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(Unknown Source) 
     at javax.management.remote.rmi.RMIConnector.findRMIServer(Unknown Source) 
     ... 5 more 
Caused by: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: 
     java.net.SocketTimeoutException: Read timed out 
     at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) 
     at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) 
     at sun.rmi.server.UnicastRef.newCall(Unknown Source) 
     at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 
     ... 10 more 
Caused by: java.net.SocketTimeoutException: Read timed out 
     at java.net.SocketInputStream.socketRead0(Native Method) 
     at java.net.SocketInputStream.read(Unknown Source) 
     at java.io.BufferedInputStream.fill(Unknown Source) 
     at java.io.BufferedInputStream.read(Unknown Source) 
     at java.io.DataInputStream.readByte(Unknown Source) 
     ... 14 more 

Czy ktoś może przedstawić niektóre myśli, dlaczego widzę ten wyjątek? Każda pomoc zostanie doceniona.

+0

Upewnij się, że port JMX nasłuchuje na tym interfejsie – Schildmeijer

+0

lektura http://wiki.apache.org/cassandra/JmxGotchas – Schildmeijer

Odpowiedz

2

"Użyj opcji JVM" -Djava.rmi.server.hostname = $ IP "(gdzie $ IP to adres IP interfejsu, z którego chcesz się połączyć ze zdalnego komputera)."

Od: wiki.apache.org/cassandra/JmxGotchas

+0

Dzięki za sugestię. W moim lokalnym dev polu z którego próbuję uruchomić nodetool, aby zobaczyć statystyki mojego klastra db produkcyjnego, odkomentowałem linię, o której wspomniałeś powyżej, tak jak to 'JVM_OPTS =" $ JVM_OPTS -Djava.rmi.server.hostname = 10.43.96.33 "', a następnie próbuję połączyć się z tym adresem IP przy użyciu nodetool, nadal otrzymuję ten sam wyjątek. Czy jest coś jeszcze, czego mi brakuje? – ferhan

Powiązane problemy