rpc_port をパブリック IP アドレスに設定したところ、外部サーバーから Cassandra に問題なく接続できるようになりました。
ただし、cqlsh を使用して、Cassandra サーバー自体から接続できません。
エラーが発生しました。
Connection error: Could not connect to localhost:9160
サーバー自体から接続できるように変更できますか?
cassandra.yaml
の行でファイルをチェックしますrpc_port :
= 9160
cassandra
cqlsh 127.0.0.1 9160
:いずれにしても大丈夫ですcqlsh [IP of host] 9160
: OKcassandra
の場合は LAN から到達可能です。OK の場合cassandra
は到達可能ではありませんlan
が、localhost 127.0.0.1
変更を検討してください/etc/cassandra.yaml
:
# Whether to start the thrift rpc server.
start_rpc: false
に
start_rpc: true
rpc_address
で定義されたを介して cassandra に接続する必要がありますcassandra.yaml
。たとえば、私は を使用しますcqlsh 10.0.80.49 9160
。
Cassandra ログにこれが表示される場合:
INFO [main] 2015-07-21 12:06:27,426 CassandraDaemon.java:406 - Not starting RPC server as requested. Use JMX (StorageService->startRPCServer()) or nodetool (enablethrift) to start it
次に、ターミナルを開いて
$ nodetool enablethrift
INFO メッセージに記載されているとおりです。今すぐ動作するはずです。私のシステムが cassandra 2.2.0 にアップグレードされたときにこれを取得しました
bin/cassandra -f
最初にローカル マシンで cassandra を起動してみてはいかがでしょうか。
127.0.0.1
のみをリッスンするように指示したため、リッスンしていません<public IP>
。リッスン アドレス0.0.0.0
をすべてのアドレスでリッスンするようにします (または、通常はこれがデフォルトであるため、可能であれば省略します)。Listening Sockets .NET チュートリアルまたはその他のソケット チュートリアルを参照して、ソケット バインドの基本を理解してください。
更新 (@ c45556037 ):
他のノードlisten_address
がこれに接続するために使用するものであることに注意してください(誤解を招く名前)。ローカルにバインドする実際のアドレスです。2.0のドキュメントからは不明で、 1.0 のドキュメントで詳しく説明されています。rpc_address
cqlsh の起動中に同じ状況に直面しました。Cassandraの起動中に次のエラーが発生しました
ターミナルに ----cassandra----- のみを入力します。
すべての jar ファイルとログ ファイルが表示されます。端末がハングした場合は、そこから脱出してからcqlshを入力してください。その後、cassandra cli に入ります。
これは私のために働いた
このコマンドを使用します
sudo service cassandra start
Cassandraを起動してから使用する
cqlsh command
次の作品のために私のため2.0.5
に..
$CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160