无法启动卡桑德拉

Can't start Cassandra

我正在尝试 运行 cqlsh 连接到 cassandra 并收到以下错误消息。

a) 来自 cqlsh 的错误 运行ning:

Connection error: ('Unable to connect to any servers', {'127.0.0.1:9042': error(61, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")})

b) 运行ning cassandra 后的错误信息:

Exception (java.lang.ExceptionInInitializerError) encountered during startup: null
java.lang.ExceptionInInitializerError
    at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:709)
    at org.apache.cassandra.service.StartupChecks.execute(StartupChecks.java:351)
    at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:109)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:607)
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:717)
Caused by: java.lang.IllegalArgumentException: Bad configuration; unable to start server: At least one DataFileDirectory must be specified
    at org.apache.cassandra.config.DatabaseDescriptor.createAllDirectories(DatabaseDescriptor.java:846)
    at org.apache.cassandra.db.Keyspace.<clinit>(Keyspace.java:66)
    ... 6 more
ERROR 00:27:05 Exception encountered during startup
java.lang.ExceptionInInitializerError: null
    at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:709) ~[apache-cassandra-2.2.17.jar:2.2.17]
    at org.apache.cassandra.service.StartupChecks.execute(StartupChecks.java:351) ~[apache-cassandra-2.2.17.jar:2.2.17]
    at org.apache.cassandra.service.StartupChecks.verify(StartupChecks.java:109) ~[apache-cassandra-2.2.17.jar:2.2.17]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188) [apache-cassandra-2.2.17.jar:2.2.17]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:607) [apache-cassandra-2.2.17.jar:2.2.17]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:717) [apache-cassandra-2.2.17.jar:2.2.17]
Caused by: java.lang.IllegalArgumentException: Bad configuration; unable to start server: At least one DataFileDirectory must be specified
    at org.apache.cassandra.config.DatabaseDescriptor.createAllDirectories(DatabaseDescriptor.java:846) ~[apache-cassandra-2.2.17.jar:2.2.17]
    at org.apache.cassandra.db.Keyspace.<clinit>(Keyspace.java:66) ~[apache-cassandra-2.2.17.jar:2.2.17]
    ... 6 common frames omitted

c) brew status 显示有一个错误 运行ning cassandra 实例:

Name          Status  User   Plist
cassandra@2.2 error    /Users/john/Library/LaunchAgents/homebrew.mxcl.cassandra@2.2.plist
rabbitmq      stopped        
redis         started  /Users/john/Library/LaunchAgents/homebrew.mxcl.redis.plist
tomcat@7      stopped

谁能帮忙解决这个问题?

这个错误是从 here - it means that you don't have configuration option data_file_directories that specifies Cassandra 需要存储数据的地方抛出的,看起来 $CASSANDRA_HOME 没有设置。

打开cassandra.yaml文件,取消注释data_file_directories配置选项和下一行,并指向Cassandra可以写入数据的目录而不是默认的/var/lib/cassandra/data。您很可能还需要指定其他参数,例如 commitlog_directoryhints_directorysaved_caches_directory.