【发布时间】:2015-11-15 21:17:41
【问题描述】:
我们的 Cassandra 2.2 集群(在 CentOS 7 上)运行良好,除了一件事。我将LOCAL_JMX=no 放入 cassandra-env.sh 后,Cassandra 无法启动并出现以下错误:
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 7199; nested exception is:
java.net.BindException: Address already in use
相关配置如下:
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/etc/pki/cassandra/keys/.keystore"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=password1"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStore=/etc/pki/cassandra/certs/.truststore"
JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=password2"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
我确实验证了端口上是否没有运行任何东西,但事实并非如此。如果我更改端口,结果相同。
有帮助的是为jmxremote.port 和jmxremote.rmi.port 使用不同的端口,尽管这违反了手册中的建议。不幸的是,即使我无法使用 nodetool 得到NoSuchObjectException: 'no such object in table' 异常。
有什么想法吗?非常感谢。
【问题讨论】:
-
cassandra-env.sh在哪里我没有在这个文件中写LOCAL_JMX=no也有同样的错误