【问题标题】:Cassandra Cluster Setup getting JMX errorCassandra 集群设置出现 JMX 错误
【发布时间】:2011-07-17 22:00:14
【问题描述】:

我正在尝试将 cassandra 集群设置为测试平台,但出现了 JMX 远程连接错误。我似乎从 cassandra 常见问题页面找到了我的错误的答案


Nodetool 对任何远程主机都说“连接拒绝主机:127.0.1.1”。什么给了?

Nodetool 依赖于 JMX,而后者又依赖于 RMI,而后者又根据需要在交换的每一端设置自己的侦听器和连接器。通常,所有这些都在幕后透明地发生,但是对于连接的主机或被连接的主机的名称解析不正确,可能会导致线路交叉和令人困惑的异常。

如果您没有使用 DNS,请确保您的 /etc/hosts 文件在两端都是准确的。如果失败,请尝试在启动时将 -Djava.rmi.server.hostname=$IP 选项传递给 JVM(其中 $IP 是您可以从远程机器访问的接口地址)。


但是有人可以帮助我如何做 -Djava.rmi.server.hostname=$IP 或者要添加的是hosts文件,我知道通常在hosts中我们添加“IP Alias”,但是它的ip和别名。

我不太了解java或linux

我目前正在开发 ubuntu v10.04 和 cassandra v0.74

苏迪什

【问题讨论】:

    标签: connection cassandra jmx cluster-computing


    【解决方案1】:

    对于 JMX,您需要启用 JMX-remoting:

    java -Dcom.sun.management.jmxremote
    

    根据你想从哪里访问jmx-server,你还需要指定一个端口:

    -Dcom.sun.management.jmxremote.port=12345
    

    并设置或禁用密码。

    查看http://download.oracle.com/javase/1.5.0/docs/guide/management/agent.html了解更多详情。

    【讨论】:

    • 感谢您的回复,我浏览了您提供的网址并执行了codejava -Dcom.sun.management.jmxremote.port=8080 \ -Dcom.sun.management 下面的代码。 jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false code 但是上面的命令没有执行,是我的命令错误
    • @Sudesh 你是否添加了第一个选项 -Dcom.sun.management.jmxremote
    • 我执行了这段代码code java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8080 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false code 并得到输出 code 用法:java [-options] class [args...](执行一个类)或 java [-options] -jar jarfile [args...](执行 jar 文件)code我不知道我做错了什么
    • @Sudesh:除了以前的开关之外,您还需要添加这些开关。如果 Cassandra 启动脚本有 JAVA_OPTS env 变量的概念,那么在里面添加。
    • 感谢 Heiko,您为我们指明了方向,我尝试在终端中执行这些命令,而不是我应该在各自的配置文件中定义它们。我不需要添加上面的 java 命令,因为它已经在那里了。为了让 cassandra nodetools 工作,我在编辑器中打开了 bin/nodetool 并在人们可以看到 java 命令的末尾添加 -Djava.rmi.server.hostname=$IP,这样就可以了。 Heiko 再次感谢您指路
    猜你喜欢
    • 1970-01-01
    • 2020-04-12
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多