4

nodetoolを使用してクラスターのステータスを確認しようとしていますが、接続できません。

私のcassandra.yamlは、listen_addressとrpc_addressをサーバーIPとして設定して構成されています(例:10.10.10.266)。

同じIPを使用してcqlshとcassandra-cliを介して接続できますが、nodetoolに接続すると機能しません。

/bin$ nodetool -h 10.10.10.266 ring
Failed to connect to '10.10.10.266:7199': Connection has timed out

サーバー(Ubuntu)でファイアウォールが有効になっているとは思いません。問題のサーバーでこれを直接実行しているので、とにかくファイアウォールの問題になるとは思いませんでした。

4

5 に答える 5

7

おそらく、cassandra-env.sh で次のパラメーターのコメントを解除する必要があります。

-Djava.rmi.server.hostname=<public name>

jmx インターフェイスがリッスンするインターフェイスのアドレスに置き換えます。

于 2013-09-09T19:15:14.127 に答える
3

nodetoolJMX インターフェイス経由で接続します。デフォルトでは、ポート 7199 でリッスンします (他のツールは、デフォルトでポート 9160 でリッスンする RPC インターフェイスを使用します)。cassandra-env.shファイル内の JMX 設定を確認してください。ほとんどの場合、JMX サーバーが間違ったインターフェイス (またはおそらくループバック インターフェイス) をリッスンしています。

デフォルトの JMX 構成セクション (cassandra ver. 1.1.5) には、トラブルシューティング ガイドへのリンクが含まれています。

# jmx: metrics and administration interface
# 
# add this if you're having trouble connecting:
# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"
# 
# see 
# https://blogs.oracle.com/jmxetc/entry/troubleshooting_connection_problems_in_jconsole
# for more on configuring JMX through firewalls, etc. (Short version:
# get it working with no firewall first.)
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=false" 
JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS"

また、使用しているすべてのネットワーク インターフェイスを一覧表示しifconfig、すべてのインターフェイスでポート 7199 を telnet してみてください。

于 2013-03-09T18:42:34.140 に答える
0

誰かが言ったように、それは JMX ポートに接続します。

JMX ポートは次の場所にあります。

  • /etc/cassandra/cassandra-env.sh。これは、ccm ベースのローカル クラスターでは機能しません。OR
  • (私のお気に入り)ノード上で実行されている Cassandra ノード プロセスのコマンドラインを見てください。

私の場合は、ローカルで作成されたクラスターだったccmので、すべてのノードが異なる JMX ポートを持つ同じホストで実行されていました。

vagrant@triforce:~$ ps -eaf | grep cassandra | grepi -o " [^ ]*jmx.local.port[^ ]* "
 -Dcassandra.jmx.local.port=7100
 -Dcassandra.jmx.local.port=7300
 -Dcassandra.jmx.local.port=7200
vagrant@triforce:~$

これは、ローカルホストで 3 つのノードを実行しているためです。

vagrant@triforce:~$ nodetool -p 7100 ring

Datacenter: datacenter1
==========
Address    Rack        Status State   Load            Owns                Token
                                                                          3074457345618258602
127.0.0.1  rack1       Up     Normal  64.65 MB        33.33%              -9223372036854775808
127.0.0.2  rack1       Up     Normal  65.26 MB        33.33%              -3074457345618258603
127.0.0.3  rack1       Up     Normal  65.92 MB        33.33%              3074457345618258602

vagrant@triforce:~$
于 2017-01-06T19:41:32.523 に答える