Cassandra 在同一群集中的远程主机上使用Nodetool命令时出现问题
如果我们从同一集群中的节点为任何其他主机运行nodetool,就会得到一个错误。尽管它对本地主机运行良好Cassandra 在同一群集中的远程主机上使用Nodetool命令时出现问题,cassandra,datastax,thrift,cassandra-2.0,cassandra-2.1,Cassandra,Datastax,Thrift,Cassandra 2.0,Cassandra 2.1,如果我们从同一集群中的节点为任何其他主机运行nodetool,就会得到一个错误。尽管它对本地主机运行良好 nodetool -h 10.241.17.81 status nodetool: Failed to connect to '10.241.17.81:7199' - ConnectException: 'Connection refused'. 此处,10.241.17.81是同一集群中的远程主机 即使在cassandra-env.sh中添加JVM\u OPTS=“$JVM\u OP
nodetool -h 10.241.17.81 status
nodetool: Failed to connect to '10.241.17.81:7199' - ConnectException: 'Connection refused'.
此处,10.241.17.81
是同一集群中的远程主机
即使在cassandra-env.sh中添加JVM\u OPTS=“$JVM\u OPTS-Djava.rmi.server.hostname=10.241.17.81”
并重新启动节点后,它也不起作用
是否有与广播地址相关的内容
rpc_address: 0.0.0.0
broadcast_rpc_address: 10.241.17.81
rpc_port: 9160
rpc_keepalive: true
您需要在cassandra-env.sh中更改以下内容:
if [ "x$LOCAL_JMX" = "x" ]; then
LOCAL_JMX=yes
到
及
到
然后重新启动节点
此外,在进行这些更改之前,请确保使用以下命令检查主机:
netstat -antp.
我相信这种混乱源于这种奇怪的BASH胡言乱语“x$LOCAL_JMX”=“x”,我记得它说的是“变量尚未初始化”。很确定就是这样,所以您可以像我一样在cassandra-env.sh中编写localjmx=no-right,它可以在没有副作用的情况下纠正问题,或者只需更改代码,如上所示。
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
netstat -antp.