マシンに cassandra ノードがあります。同じマシンから cqlsh にアクセスすると、正常に動作します。
しかし、別のマシンから「192.xxx」を使用してcqlshに接続しようとすると、エラーが発生します
接続エラー: ('どのサーバーにも接続できません', {'192.xxx': error(111, "[('192.xxx', 9042)] に接続しようとしました。最後のエラー: 接続が拒否されました")})
これの理由は何ですか?どうすれば修正できますか?
マシンに cassandra ノードがあります。同じマシンから cqlsh にアクセスすると、正常に動作します。
しかし、別のマシンから「192.xxx」を使用してcqlshに接続しようとすると、エラーが発生します
接続エラー: ('どのサーバーにも接続できません', {'192.xxx': error(111, "[('192.xxx', 9042)] に接続しようとしました。最後のエラー: 接続が拒否されました")})
これの理由は何ですか?どうすれば修正できますか?
おそらく、リモートの Cassandra ノードは、外部ネットワーク インターフェイスではなく、ループバック インターフェイスにバインドされています (これが既定の構成です)。これは、リモート マシンから「telnet thecassandrahost 9042」を使用することで確認できますが、機能しないはずです。
Cassandra を外部ネットワーク インターフェイスにバインドするには、cassandra.yaml 構成ファイルを編集し、プロパティ " listen_address
" および " rpc_address
" をリモート IP または "0.0.0.0" に設定する必要があります (Cassandra のすべてのバージョンがワイルドカード アドレスをサポートしているわけではありません)。
ファイアウォールが適切に構成されているか無効になっていることも確認してください (sudo service iptables stop)。
このファイルが配置されている構成パラメーターを設定します。おそらく/etc/cassandra/cassandra.yaml
。
listen_address: 192.x.x.x
rpc_address: 192.x.x.x
次に、サービスを再起動します。
を設定した後でも、オプションRPC_ADDRESS
を設定するまでは機能しませんでした。-e CASSANDRA_START_RPC=true
私の場合は常に設定されてfalse
いました。Ubuntu、Docker、および Cassandra でこれを試しました。
問題を解決するIPアドレスとしてcassandra.yaml set listen_addressとroc_addressを編集します。