トラブルシューティング

起動エラー

  • cqlshを実行すると、以下のようなConnection Errorが発生する。
Connection error: ('Unable to connect to any servers', {'::1': error(61, "Tried connecting to [('::1', 9042, 0, 0)]. Last error: Connection refused"), 'fe80::1%lo0': error(61, "Tried connecting to [('fe80::1%lo0', 9042, 0, 1)]. Last error: Connection refused"), '127.0.0.1': error(61, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")})
  • 対処
  1. /usr/local/var/log/cassandra/system.logを確認する。
  2. 以下の様なエラーログが出力されていることを確認。実行中のJVMが異常終了した際に、コミットログが破損する等した場合に発生する模様。
ERROR [main] 2018-02-11 05:14:11,722 JVMStabilityInspector.java:82 - Exiting due to error while processing commit log during initialization.
org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Could not read commit log descriptor in file /usr/local/var/lib/cassandra/commitlog/CommitLog-6-1517069302120.log
  at org.apache.cassandra.db.commitlog.CommitLogReplayer.handleReplayError(CommitLogReplayer.java:616) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:378) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:228) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:185) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:165) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:314) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:585) [apache-cassandra-3.7.jar:3.7]
  at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:714) [apache-cassandra-3.7.jar:3.7]
  1. データが失われても問題なければ、コミットログを削除し、再起動。
> launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.cassandra.plist
> mkdir backup
> mv /usr/local/var/lib/cassandra/commitlog/CommitLog-* backup/
> launchctl load ~/Library/LaunchAgents/homebrew.mxcl.cassandra.plist

接続エラー

  • Javaアプリケーション上からDriver経由でCassandraに接続しようとすると、コネクションエラーが発生する。
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /XXX.XXX.XXX.XXX:9042
(com.datastax.driver.core.exceptions.TransportException: [/XXX.XXX.XXX.XXX:9042] Cannot connect))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:233) ~[cassandra-driver-core-3.1.4.jar!/:na]
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79) ~[cassandra-driver-core-3.1.4.jar!/:na]
  • 原因:接続先の通信がファイアフォールがブロックされている際に発生する。
  • 対処
  1. Cassandaサーバのファイアウォール設定状況を確認し、接続先クライアントのIPの接続を許可する。