web-dev-qa-db-ja.com

cqlshを使用してlocalhostにCassandraを接続するには?

Rpc_portをパブリックIPアドレスに設定すると、Cassandraに外部サーバーから接続できます。

ただし、cqlshを使用して、Cassandraサーバー自体から接続できません

エラーが発生しています。

 Connection error: Could not connect to localhost:9160

構成はありますか、サーバー自体から接続できるように変更できますか?

24
Albert Lim
  1. cassandra.yamlの行のrpc_port :ファイルを、デフォルトで通常= 9160で確認します
  2. cassandraをホストしているマシンにログインします
  3. cqlsh 127.0.0.1 9160を試してください:どんな場合でも大丈夫です
  4. cqlsh [IP of Host] 9160を試してください:OKならcassandraはlanから到達可能、OKならcassandralanからは到達できませんが、localhost 127.0.0.1からのみ到達可能
20
LeGeekDOzoZoo

rpc_addressで定義されているcassandra.yamlを介してcassandraに接続する必要があります。たとえば、cqlsh 10.0.80.49 9160を使用します。

8
Daniel Compton

/etc/cassandra.yaml

# Whether to start the thrift rpc server.
start_rpc: false

start_rpc: true
8
Hall Newman

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にアップグレードされたときにこれを取得しました

6

OSXを使用している場合

brew install cassandra

最初にCassandraを起動します

cassandra

Start the Cassandra CQLシェル経由で接続

cqlsh 127.0.0.1

enter image description here

5
Gajen Sunthara

多分start cassandraによってローカルマシンでbin/cassandra -f 最初?

4
Jun

127.0.0.1のみをリッスンするように指示したため、<public IP>をリッスンしていません。リッスンアドレス0.0.0.0を作成して、すべてのアドレスをリッスンします(または、これが通常デフォルトであるため、可能であれば省略します)。 Listening Sockets .NETチュートリアル またはその他のソケットチュートリアルを参照して、ソケットバインディングの基本を理解してください。

更新(@ c45556037 ):

listen_addressは、他のノードがこのノード(誤解を招く名前)に接続するために使用するものであることに注意してください。 rpc_addressは、ローカルにバインドする実際のアドレスです。 2.0 docs からは不明確であり、 1.0 docs で詳しく説明されています。

3
ivan_pozdeev

Cqlshの起動中に同じ状況に直面しました。 cassandraの起動中に次のエラーが発生しました

ターミナルには---- cassandra -----のみを入力します。

すべてのjarファイルとログファイルが表示されます。端末がハングした場合は、そこからエスケープしてからcqlshと入力します。その後、cassandra cli。

これは私のために働いた

Cassandra?でデフォルトのポート9042を変更する方法

以下の手順を使用して問題を解決しました:

1)カサンドララサービスを停止する

Sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse

2)バックアップを取り、ポートを9042から9035に変更します

cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
vi /opt/dse/resources/cassandra/conf/cassandra.yaml

native_transport_port: 9035

3)Cassandraサービスを開始

systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse

4)cqlshrcファイルを作成します。

vi  /root/.cassandra/cqlshrc

[connection]
hostname = 198.168.1.100
port = 9035
0
mahesh agrawal

Localhost/9160への接続の例外。理由:接続が拒否されました

接続が拒否されましたcassandra cliモード。

cassandraのルートディレクトリに移動します。

bin/cassandra -- Host {Host-ip} --port {9160}

これで問題がある場合は、{cassandra-root-directory} /conf/cassandra.yamlを確認してください

thrift ipまたはrpc_addressは、cliに接続するためのホストIPとして使用されるアドレスです。ローカルIPにし、ポート9160を使用して接続できない場合は、rpc_portを8070に変更してから、コマンドを使用してcassandra-cliモードに接続してください

bin/cassandra --Host {local-IP} --port 8070

これは私のために働いた、それもあなたのために働くことを願っています。

0
user3617840

このコマンドを使用

Sudo service cassandra start

cassandraを開始してから使用する

cqlsh command
0

問題を解決するには、以下のクエリを実行してください

#!/bin/bash
export CASSANDRA_HOME=/opt/Apache-cassandra-2.1.8
export CQLSH_Host=192.168.1.200
export CQLSH_PORT=9042
echo $@
$CASSANDRA_HOME/bin/cqlsh $@'    

IPアドレスとcassandraホームディレクトリの場所を必ず変更してください

0
Imran Ahmed

/etc/cassandra-env.shの変更を検討してください。

JVM_OPTS="$JVM_OPTS -Dcom.Sun.management.jmxremote.ssl=true"
not "true" but "false"
JVM_OPTS="$JVM_OPTS -Dcom.Sun.management.jmxremote.ssl=false"

Sudoサービスcassandra= restart

0
Master rsl

ために 2.0.5次の作品は私のために働く..

   $CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160
0
user2720864