web-dev-qa-db-ja.com

別のホストからcassandraノードに接続できません

マシンにcassandraノードがあります。同じマシンからcqlshにアクセスすると、正常に動作します。

しかし、別のマシンから「192.x.x.x」を使用してcqlshに接続しようとすると、次のエラーが表示されます。

接続エラー:(「サーバーに接続できません」、{'192.xxx':error(111、 "[( '192.xxx'、9042)]への接続を試行しました。最後のエラー:接続が拒否されました")} )

この理由は何ですか?どうすれば修正できますか?

15

おそらくリモートCassandraノードは外部ネットワークインターフェイスではなく、ループバックインターフェイスにバインドされています(これはデフォルトの構成です)。リモートマシンから "telnet thecassandrahost 9042"を使用してこれを確認できます。 、動作しないはずです。

Cassandra=を外部ネットワークインターフェイスにバインドするには、cassandra.yaml構成ファイルを編集し、プロパティ「listen_address "および" rpc_address "をリモートIPまたは" 0.0.0.0 "(Cassandraがワイルドカードアドレスをサポートするすべてのバージョンではありません)。

ファイアウォールが適切に構成または無効になっていることも確認してください(Sudo service iptables stop)。

18
Nicola Ferraro

このファイルが配置されている構成パラメーターを設定します。おそらく/etc/cassandra/cassandra.yaml

cassandra.yaml

listen_address: 192.x.x.x
rpc_address: 192.x.x.x

次に、サービスを再起動します。

5
Brandon Bradley

1.Update:./conf/cassandra.yaml

rpc_address: 0.0.0.0 ("0.0.0.0" allow anywhere IP,but you can appoint an IP)

\# broadcast_rpc_address: 1.2.3.4 (Delete comment if pc_address=0.0.0.0)

2.restart

./bin/cassandra

ケース:リモートアクセスできないという問題に遭遇しましたcassandra Java access cassandraを使用する場合

4
Moks

同じ問題が発生しました。そして、私はこの投稿の回答に従っています。残念ながら、私はそれを機能させる運がありません。私はいくつかの研究をしました。そして、それは今動作します。これが私の変化です。

  • 環境Virtual Server上のUbuntu Server 16.04.3 LTS、DSEバージョン5.1

  • DSEをインストールする

このページに従ってDSEをインストールしています https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/install/installGUIdse.html

  • /etc/dse/cassandra/cassandra.yamlに移動します
  • 「シード」を127.0.0.1から{seriver ip} expに変更します。私のは172.20.10.9
  • listen_address DSE 5.1の公式文書では、「0.0.0.0を指定しないでください。常に間違っています。」私がしたことは「listen_address」設定をコメントアウトすることです
  • 「rpc_address」がlocalhostから0.0.0.0に変更
  • 「broadcast_address」はサーバーIPに変更されます。私のものは172.20.10.9
  • サーバーIPへの「broadcast_rpc_address」の変更
  • dse waitを数分間再起動すると、変更されます。それでも動作しない場合は、マシンを再起動します。

これは15秒後の私のログです。 `ubuntu08 @ ubuntu08:〜$ nodetool status nodetool: '127.0.0.1:7199'への接続に失敗しました-ConnectException: '接続は拒否されました(接続は拒否されました)'。 ubuntu08 @ ubuntu08:〜$ nodetool status

エラー:ノードにはまだsystem_tracesがありません。おそらくubuntu08 @ ubuntu08:〜$ nodetool statusをまだブートストラップしています

データセンター:SearchGraphAnalytics

Status = Up/Down |/State = Normal/Leaving/Joining/Moving-Address Load Tokens Owns Host ID Rack UN 10.0.0.44 278.51 KiB 32? 19db0016-df63-4470-9921-f3b5fe4e9341 rack1 `

  • ローカルまたは別のマシンから「cqlsh 172.20.10.9」を実行してアクセスできます。

これはCassandra https://docs.datastax.com/en/developer/Java-driver/3.3/manual/address_resolution/ の別のドキュメントです

2
cicidi

Cassandra.yamlファイルで次の構成パラメーターを設定します(CentOSの場合は/etc/cassandra/default.confにあります)

rpc_address:0.0.0.

次の値が以下と同じであることを確認します(通常はデフォルトです)

start_native_transport:true

native_transport_port:9042

CentOSの最後のステップ、ファイアウォール構成を更新し、着信接続にポート9042を許可します

  1. CentOSメニューの「システム/管理/ファイアウォール」からファイアウォールにアクセスします
  2. 「その他のポート」の下にポートを追加
0
Ram Pratap

RPC_ADDRESSを設定した後でも、-e CASSANDRA_START_RPC=trueオプションを設定するまで機能しませんでした。

私の場合、常にfalseに設定されていました。 Ubuntu、Docker、Cassandraでこれを試しました。

0
jAvA