独立模式下的Cassandra nodetool

独立模式下的Cassandra nodetool,cassandra,Cassandra,我已经让Cassandra 0.7在独立模式下运行,我正在尝试运行nodetool,但是我得到了JMX异常。访问远程服务器时不需要JMX配置吗?我正在访问我的本地计算机 另外,为什么nodetool要寻找63.251.179.13 [rav@ubix bin]$ ./nodetool -h 127.0.0.1 flush Error connection to remote JMX agent! java.rmi.ConnectException: Connection refused

我已经让Cassandra 0.7在独立模式下运行,我正在尝试运行nodetool,但是我得到了JMX异常。访问远程服务器时不需要JMX配置吗?我正在访问我的本地计算机

另外,为什么nodetool要寻找63.251.179.13

    [rav@ubix bin]$ ./nodetool -h 127.0.0.1 flush
Error connection to remote JMX agent!
java.rmi.ConnectException: Connection refused to host: 63.251.179.13; nested exception is: 
    java.net.ConnectException: Connection refused
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:128)
    at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
    at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2343)
    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:296)
    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:267)
    at org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:144)
    at org.apache.cassandra.tools.NodeProbe.<init>(NodeProbe.java:114)
    at org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:621)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
    at java.net.Socket.connect(Socket.java:546)
    at java.net.Socket.connect(Socket.java:495)
    at java.net.Socket.<init>(Socket.java:392)
    at java.net.Socket.<init>(Socket.java:206)
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
    ... 10 more
[rav@ubixbin]$./nodetool-h 127.0.0.1冲洗
连接到远程JMX代理时出错!
java.rmi.ConnectException:拒绝连接主机:63.251.179.13;嵌套异常是:
java.net.ConnectException:连接被拒绝
位于sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
位于sun.rmi.transport.tcp.tcpcchannel.createConnection(tcpcchannel.java:216)
位于sun.rmi.transport.tcp.tcpcchannel.newConnection(tcpcchannel.java:202)
位于sun.rmi.server.UnicastRef.invoke(UnicastRef.java:128)
位于javax.management.remote.rmi.RMIServerImpl\u Stub.newClient(未知源)
位于javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2343)
位于javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:296)
位于javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:267)
位于org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:144)
位于org.apache.cassandra.tools.NodeProbe.(NodeProbe.java:114)
位于org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:621)
原因:java.net.ConnectException:连接被拒绝
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
位于java.net.socksocketimpl.connect(socksocketimpl.java:384)
位于java.net.Socket.connect(Socket.java:546)
位于java.net.Socket.connect(Socket.java:495)
位于java.net.Socket(Socket.java:392)
位于java.net.Socket。(Socket.java:206)
位于sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
位于sun.rmi.transport.proxy.rmismastersocketfactory.createSocket(rmismastersocketfactory.java:146)
位于sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 10多
谢谢,

请按照说明,尝试使用带有-h或--host和-p或--port的nodetool:

 -h,--host <arg>        node hostname or ip address
 -p,--port <arg>        remote jmx agent port number
-h,--host


这台机器是unix还是windows?您是否在
/etc/hosts
中有一个错误的条目,表明127.0.0.1映射到另一个主机名或IP地址,即63.251.179.13

在我的计算机上本地运行的Cassandra实例上运行nodetool时,我遇到了类似的问题。当尝试运行
nodetool-h127.0.0.1
nodetool时,发出了一个与JMX相关的异常,看起来是这样的(其中有一个对我来说未知的IP地址)

连接到远程JMX代理时出错! java.rmi.ConnectionException:创建到的连接时发生异常:;嵌套异常是: java.net.SocketException:主机已关闭 ,我发现Cassandra似乎在启动时记录主机名。不幸的是,当我运行nodetool时,主机名已经过时(我的IP地址是动态分配的)


然后,我的解决方案是重新启动cassandra,它更新了IP并重新运行nodetool。没有更多的JMX错误,没有更多奇怪的IP地址。这对我来说很有用,因为我正在本地主机上运行Cassandra的本地实例,不介意重新启动,但这不是一个非常令人满意的解决方案。

我支持/etc/hosts的建议。我发现Cassandra对正确设置/etc/hosts很挑剔,所以请确保将localhost解析为127.0.0.1 Error connecting to remote JMX agent! java.rmi.ConnectIOException: Exception creating connection to: ; nested exception is: java.net.SocketException: Host is down