web-dev-qa-db-ja.com

Apache Cassandraリモートアクセス

Apache Cassandra=をリモートUbuntuサーバーにインストールしました。Apacheのリモートアクセスを許可する方法Cassandra=データベースと接続方法は?

24
user1588782

Cassandra=へのリモートアクセスは、thriftポート経由です(ただし、JMXポートを使用して、いくつかの制限された操作を実行できることに注意してください))。

Thriftポートはcassandra.yamlrpc_portパラメーターで定義され、デフォルトは9160です。cassandraノードはサーバーのネットワークカードのIPアドレスにバインドする必要があります。127.0.0.1またはlocalhostであってはなりませんこれはループバックインターフェイスのIPであり、これにバインドすると直接リモートアクセスが防止されます。バインドされたアドレスは、cassandra.yamlのrpc_addressパラメーターで構成します。これを0.0.0.0に設定すると、「すべてのネットワークインターフェイスでリッスン」と表示されます。君は。

接続するには、次を使用できます。

  • cassandraディストリビューションのbinディレクトリにあるcassandra-cliは、単純なget/set/list操作を提供し、Javaに依存します
  • CassandraへのCQLアクセスを提供するcqlshシェル。これはPythonに依存します
  • Apollo などのより高いレベルのインターフェース
46
CraigJPerry

現在この質問を見つけている人にとって、一番の答えは時代遅れです。

Apache Cassandraのthriftインターフェイスは廃止され、Cassandra 4.0で削除されます。デフォルトのクライアントポートは9042です。

Tyler Hobbsが述べたように、 rpc_address パラメーターが127.0.0.1またはlocalhost(デフォルトではlocalhost)に設定されていないことを確認する必要があります。すべてのインターフェースでリッスンするように0.0.0.0に設定する場合、 broadcast_rpc_address をノードのパブリックまたはプライベートIPアドレスのいずれかに設定する必要があります(Cassandraへの接続方法に応じて)

Cassandra-cliも廃止され、Apolloはアクティブではなくなりました。 cassandra-cliの代わりに cqlsh を使用し、Apolloの代わりに Javaドライバー を使用します。

SSLと強力な認証を有効にして 適切に保護 しない限り、JMXポートをリモートでアクセス可能にすることはお勧めしません。

これがお役に立てば幸いです。

5
Justin Cameron

Azureを使用している場合、仮想IPは仮想マシンではなくクラウドサービス自体を指しているため、パブリックIPアドレスを作成する必要がある可能性があります。より多くの情報を見つけることができます この投稿で

3

カサンドラ3.11.3

私は私の仕事を得るために次のことをしました。 cassandra.yamlの変更:

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: ***.***.***.***

broadcast_rpc_addressは、cassandraがインストールされているマシンのアドレスです

 seed_provider:
  - class_name: ...
    - seeds: "127.0.0.1, ***.***.***.***"

シードでは、cassandraが実行されていたマシンのIPアドレスを追加/追加しました。

tableplus を使用してWindowsからアクセスしました。 tableplusで、cassandraマシンのIPアドレスを、ポートセクションで9042およびssh接続に使用したユーザー名とパスワードを使用しました。

2
Amit L