nodetool命令不起作用

fsi0uk1n  于 2021-06-10  发布在  Cassandra
关注(0)|答案(2)|浏览(579)
nodetool -h 10.16.252.129 -p 9042 -u cassandra -pw cassandra status

正在给出错误:

nodetool: Failed to connect to '10.16.252.129:9042' - 
ConnectIOException: 'non-JRMP server at remote endpoint'.

这在cassandra.yaml文件中:

rpc_address: 10.16.252.129
rpc_port: 9160
0sgqnhkj

0sgqnhkj1#

首先,端口9042用于本机二进制协议cql客户端连接。端口9160用于旧式(已弃用)thrift协议客户端连接。节点间 nodetool 命令通过端口7199使用jmx(java管理扩展)协议。
请注意,为了使远程jmx工作,需要打开端口7199(防火墙)和 cassandra-env.sh 具有以下配置行:

$JMX_PORT="7199"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=$HOST_IP"

您可能还希望启用jmx密码验证:

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

此外,您不需要发送端口或凭据。这个 cassandra / cassandra cred是数据库auth的默认值,而不是jmx。如果启用了jmx password auth,则需要发送在密码文件中定义的任何用户名和密码。但是,否则,这应该可以工作(只要当前节点和目标节点都启用了远程jmx):

nodetool -h 10.16.252.148 status
dgsult0t

dgsult0t2#

nodetool命令必须使用7199端口。但是,您需要检查您的端口是否已打开,如果未打开,则应在防火墙上打开/允许此端口。
您可以在cassandra-env.sh上找到jmx端口配置。
那你应该试着从下面跑command:-
nodetool-h主机名/ip-p 7199-u用户名-pw密码状态
您可以在下面的链接中找到更多关于nodetool语法和用法的详细信息。http://cassandra.apache.org/doc/latest/tools/nodetool/compactionhistory.html

相关问题