Cassandra(datastax)バージョン2.1.3およびcqlshバージョン5.0.1の使用を開始しました。
Cassandraは正常に起動し、クラスターは即座に動作します。
Cqlshは(いずれかのノードで)動作せず、次のエラーを出力します。
接続エラー:(「サーバーに接続できません」、{'127.0.0.1':error(111、 "[( '127.0.0.1'、9042)]への接続を試みました。最後のエラー:接続が拒否されました")})
ホスト自身のIP、他のホストIP、異なるポートでcqlshを起動しようとしましたが、結果は同じままです-常に接続が拒否されました。
IPが10.0.1.34でrpc_address
がデフォルト値のままであるかのように、rpc_port
を0.0.0.0ではなくノードのIPを指すように変更し、cqlshへの接続中にIPを指定してください。 9160の場合、次のように機能します。
cqlsh 10.0.1.34 9160
または:
cqlsh 10.0.1.34
また、/ etc/cassandra/cassandra.yaml構成ファイルでstart_rpcがtrueに設定されていることを確認してください。
接続しようとしているノードでcassandra.yaml
を編集し、rpc_address
およびlisten_address
のノードIPアドレスを設定して、Cassandraを再起動する必要があります。
rpc_address
は、Cassandraがクライアント呼び出しをリッスンするアドレスです。
listen_address
は、Cassandraが他のCassandraノードをリッスンするアドレスです。
これは、cassandraのいくつかの事前設定が原因です。これを修正するために、cassandra-env.sh
ファイルに次のコメント行があります。
#add this if you’re having trouble connecting: #JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>
エラーの修正を開始する必要があります。
ターミナルを開き、次の簡単な手順を使用して修正を開始します。
ステップ-1
つかいます
Sudo nano /etc/cassandra/cassandra-env.sh
このコマンドとJVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=
の検索は、行の先頭にある#
を削除するだけで行のコメントを解除します。
注:このエラーを修正するためにこのファイルを開いたことがない場合、JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>
が見つかります。
ステップ-2<public name>
を127.0.0.1
に置き換えます
ステップ-ファイルを保存し、systemctl restart cassandra.service
を使用してcassandraを再起動します(サーバーが既に実行されていない場合)。 ORは、systemctl start cassandra.service
を使用してcassandraを開始します(サーバーが実行されていない場合)。
ステップ-4Sudo service cassandra status
またはsystemctl status cassandra.service
を使用してステータスを確認します。
注:システムモニターで、cassandraが実行されているかどうかを確認します。
今すぐcqlsh
をお試しください。動作します。
注:nano
は、使い慣れた他のエディターを使用できるエディターです。
system.logファイルでcassandra in/ var/log/cassandraを確認する場合、rpc serverが起動していないため、この問題が発生することがわかります。
デフォルトでは、start_rpcは、cassandra.yamlファイルでfalseに設定されます。 start_rpc:trueに設定して、再試行してください。
少なくともCassandra 3.0start_rpcでは、デフォルトでtrueに設定されています。 https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html
/etc/cassandra/cassandra.yamlでnative_transport_portを探します。デフォルトは9842です。
native_transport_port: 9842
Cqlshを使用してlocalhostに接続するために、このポートは機能しました。
cqlsh 127.0.0.1 9842
ArchLinuxでCassandra 3.0からCassandra 2.2にダウングレードした後、最近同じ問題が発生しました。
上記のソリューションとは異なり、私の問題は.cassandraにはありませんでしたが、バージョン3.0は/ var/lib/cassandraディレクトリに構成を残していました。
次のコマンドは私の問題を解決しました:
Sudo rm -R /var/lib/cassandra
Sudo rm -R /var/log/cassandra
Sudo rm -R /usr/share/cassandra
その後、cassandraをインストールしましたが、すべて正常に動作しました:)
サーバーが稼働している場合でも、cassandraログを確認することをお勧めします。私はまったく同じメッセージを受け取っていて、それで何もできませんでした。その後、ログにエラーがあり、システムが実際に機能していないことがわかりました。
愚かな、私は知っているが、起こる可能性があります...
native_transport_protocol
をポート9160
に変更してみてください(9160
以外に設定されている場合、9042
を指している可能性があります)。ログを確認し、cassandraがCQLクライアントをリッスンしているポートを確認してください。
私にとっては、サービスがまったく実行されていなかったことが判明しました。確認する
service cassandra status
私と同じエラーまたは別のタイプのエラーが発生した場合、IPアドレスをいじっても問題はまったく解決しません。
私が得たエラー:
cassandra dead but pid file exists
編集:これは私の問題の解決策でした: https://stackoverflow.com/a/46743119/3881406
ネットワークドライブで実行しようとしていました。そこで、cqlshでclient_timeout
を増やしてみました。
cqlsh --cqlversion = "3.4.0" 127.0.0.1:9042でテストクラスターに接続[cqlsh 5.0.1 | Cassandra 3.0.9 | CQL仕様3.4.0 |ネイティブプロトコルv4]
上記のコマンドを試してください。わたしにはできる。
指定されたアドレスにtelnetで接続してみてください。私の場合、私をブロックする場所にファイアウォールがありました。
[cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]
でこの問題が発生し、start_native_transport: true
ファイルにcassandra.yaml
を設定する必要がありました。
確認のため、
tailf /var/log/cassandra/system.log
ファイルを開いてみてくださいcassandra.yaml
を更新Sudo service cassandra restart
ログファイルに表示されます。
INFO [main] 2019-03-15 19:53:06,156 Server.Java:156 - Starting listening for CQL clients on /10.139.45.34:9042 (unencrypted)...
Cassandra 3.11.1をインストールしたときに、この問題に遭遇しました。 /var/log/cassandra/cassandra.logを確認したところ、起動時にこのエラーが発生しました。..これはバグであり、すでに報告されています。元の投稿リンク https://issues.Apache.org/jira/browse/CASSANDRA-1417 。
解決策は、Cassandraを3.0にダウングレードすることです
curl -O https://www.Apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm
または
wget https://www.Apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm
cassandra(pid 2322)が実行中です...
Cassandra 3.11.0で同じ問題が発生していましたが、rpcのアドレスを変更したり、cqlshのリッスンアドレスが機能しなかったりしました。同じローカルIPをseeds
に追加する必要がありました
そのため、多くの試行錯誤の後、私の作業cassandra.ymlは次のようになりました。
class-name: org.Apache.cassandra.locator.SimpleSeedProvider
parameters:
-seeds: "192.168.0.30"
listen_adress: 192.168.0.30
rpc_address: 192.168.0.30
「listen_address」で指定したアドレスに「seeds」も設定していることを確認してください