Cassandraでnodetoolを-hオプション付きで実行するとき、ポートを閉じていないにもかかわらず接続が拒否されてしまうことがある。
オプションなし、あるいはホスト指定がlocalhostだと動作する。
CassandraというかJMXに起因する問題で、接続先サーバーのホスト設定が間違っているために発生する。
ホスト指定してnodetoolが実行できないサーバーで、
hostname -i
を叩いて
127.0.0.1
が帰ってくるようであればNG.
解決のためには /etc/hosts を編集し、ローカルIPを設定する必要がある。
xxx.xxx.xxx.xxx my.host.domain
/etc/hosts を変更した後、
hostname -i
を実行して設定したIPアドレスが帰ってくるようであればOK.
設定後にCassandraの再起動が必要なため、再起動すればそのホストへのnodetool実行が可能になる。
参考
http://wiki.apache.org/cassandra/FAQ_JP#jmx_localhost_refused
http://ise0615.blogspot.jp/2010/12/jmxtomcat.html
http://d.hatena.ne.jp/ihiroky/20090403/1238721947