web-dev-qa-db-ja.com

設定方法cassandra=リモート接続用

Cassandra Windowsでのリモート接続用のDatastax Community Edition、

CassandraサーバーはWindows 7 PCにインストールされますローカルCQLSHを使用すると、ローカルサーバーに完全に接続されます。

しかし、接続しようとすると同じネットワーク内の別のPCからのCQLSHで、このエラーメッセージが表示されます:

接続エラー:(「すべてのサーバーに接続できません」、{'MYHOST':error(10061、 "[( 'Host_IP'、9042)]への接続を試行しました。最後のエラー:ターゲットマシンがアクティブに拒否したため、接続できませんでしたそれ")})

だから私は正しく設定する方法を疑問に思っています(cassandra.yaml設定ファイルにどのような変更を加える必要がありますか)Cassandraサーバーはリモート接続を許可します。

前もって感謝します!

11
Obama

Cassandra=へのリモートアクセスは、Cassandra 2.0のスリフトポート経由です。Cassandra 2.0.x、デフォルトのcqlshリッスンportは、rps_portパラメーターによってcassandra.yamlで定義されている9160です。デフォルトでは、Cassandra 2.0.x以前では、cassandra.yamlファイルでstart_rpcをtrueに設定することでThriftが有効になります。

In Cassandra 2.1、cqlshユーティリティはネイティブプロトコルを使用します。InCassandra 2.1、Datastax pythonドライバ、デフォルトのcqlshリスンポートは9042です。

cassandraノードは、サーバーのネットワークカードのIPアドレスにバインドする必要があります-ループバックインターフェイスのIPである127.0.0.1またはlocalhostにしないでください。これにバインドすると、直接リモートアクセスができなくなりますバインドされたアドレスを構成するには、cassandra.yamlのrpc_addressパラメーターを使用し、これを0.0.0.0に設定すると、すべてのネットワークインターフェースでリッスンします。

リモートマシンがCassandraノードに接続できるか、マシン間にファイアウォールがありますか?以下の手順を試してテストできます:

1)使用しているサーバーからそのIPに接続できることを確認してください:

$ ssh [email protected]

2)ノードのステータスを確認し、同じIPが表示されることも確認します:

$ nodetoolステータス

)コマンドを実行してIPに接続します(デフォルトを使用していない場合にのみポートを指定します):

$ cqlsh xxx.xxx.xx.xx

16
Kat

これはどう:

Cassandra.yaml構成ファイルでこれらの変更を行います。

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: [node-ip]

listen_address: [node-ip]

seed_provider:
  - class_name: ...
    - seeds: "[node-ip]"

参照: https://Gist.github.com/andykuszyk/7644f334586e8ce29eaf8b93ec6418c4

17
ahll

Katの代替ソリューション。 Ubuntu 16.04で動作しました

  1. サーバーへのssh server_user@**.**.**.**
  2. 停止cassandra=実行中の場合:

    • ps aux | grep cassandraで実行しているかどうかを確認します
    • 実行中の場合、コマンド/フラグの大きなブロックを出力します。

      ubuntu 14018 4.6 70.1 2335692 712080 pts/2 Sl + 04:15 0:11 Java -Xloggc:./../ logs/gc.log ........

      例の注14018はプロセスIDです

    • kill <process_id>(この場合は14018)で停止します
  3. cassandra.yamlファイルを次のように編集します

    • rpc_address: 0.0.0.0
    • broadcast_rpc_address: **.**.**.** <-サーバーのIP(0.0.0.0に設定できません)
  4. 再起動cassandra= ./bin/cassandra -f(cassandra root)内から)
  5. ローカルマシンで別のターミナルを開き、cqlsh **.**.**.**(サーバーのIP)経由で接続してテストします。

./bin/nodetool statusアドレスは私のローカルホストIP(127.0.0.1)を報告しましたが、cqlshはそれにもかかわらずリモートで動作しました。

9
ChickenFeet

すべてのcassandra.yaml構成オプションのリストと説明については、次のページにアクセスできます。 http://cassandra.Apache.org/doc/latest/configuration/cassandra_config_file.html#rpc-address

0
knowledgy