Cassandra死了但是pid文件存在

时间:2015-03-04 05:04:36

标签: cassandra

我对cassandra有新手,并尝试在centos 7.0上安装cassandra-2.1.2。 完成安装后,执行cqlsh命令并创建几个密钥空间和列族。 在我看来,它看起来很完美。

但后来我才意识到以下问题:

1-当我执行“service cassandra status”命令时,我得到以下错误:

输出:Cassandra死了,但是pid文件存在。

我搜索了上述问题并找到了一些链接

http://www.datastax.com/support-forums/topic/dse-dead-but-pid-file-exists

https://baioradba.wordpress.com/2014/06/13/how-to-install-cassandra-on-centos-6-5/

并发现我在上面的链接中提到了相同的配置,但同样的错误仍然存​​在。

请告诉我根本原因以及解决方法。

2-第二个问题在cassandra.log文件中。

当我分析cassandra.log文件时,有一个预期:

Expecting URI in variable: [cassandra.config]. Please prefix the file with file:/// for local files or file://<server>/ for remote files. Aborting.

以下是完整的日志:

12:01:40.816 [main] ERROR o.a.c.config.DatabaseDescriptor - Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: Expecting URI in variable: [cassandra.config].  Please prefix the file with file:/// for local files or file://<server>/ for remote files.  Aborting.
    at org.apache.cassandra.config.YamlConfigurationLoader.getStorageConfigURL(YamlConfigurationLoader.java:73) ~[apache-cassandra-2.1.3.jar:2.1.3]
    at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:84) ~[apache-cassandra-2.1.3.jar:2.1.3]
    at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:158) ~[apache-cassandra-2.1.3.jar:2.1.3]
    at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:133) ~[apache-cassandra-2.1.3.jar:2.1.3]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:110) [apache-cassandra-2.1.3.jar:2.1.3]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:465) [apache-cassandra-2.1.3.jar:2.1.3]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:554) [apache-cassandra-2.1.3.jar:2.1.3]
Expecting URI in variable: [cassandra.config].  Please prefix the file with file:/// for local files or file://<server>/ for remote files.  Aborting.

致命配置错误;无法开始。请参阅logtra for stacktrace。

我再次在谷歌搜索同一个问题,但链接不是很有用,因为它们包含了cassandra.config的java类代码。

请再说一下根本原因以及如何解决它?

提前致谢。

5 个答案:

答案 0 :(得分:0)

pid

终止cassandra进程的cassandra

开始public static String quit() throws Exception { try { APPLICATION_LOGS.info("Executing the Keyword quit"); driver.quit(); wbdv.quit(); APPLICATION_LOGS.info("Browser Closed"); result="Driver Closed"; return "Pass"; } catch(Exception t) { APPLICATION_LOGS.info("Error while generating the quit -" + object + t.getMessage()); result = t.getMessage(); throw new Exception("Exception raised in function :quit"); } }

答案 1 :(得分:0)

解决此问题,编辑cassandra-env.sh:

sudo vi /etc/cassandra/conf/cassandra-env.sh

增加cassandra的堆大小..这应解决您的问题

答案 2 :(得分:0)

使用此命令检查您是否有足够的内存来启动cassandra服务:

cat /proc/meminfo

我在使用Virtualbox运行Hortonworks VM时,我启动了大量需要大量内存的Hadoop组件,因此对我来说,解决方案是停止不必要的Hadoop组件并为虚拟机添加一些额外的内存。

答案 3 :(得分:0)

来自https://github.com/apache/cassandra/blob/cassandra-2.1/examples/client_only/README.txt#L43-L49

  

cassandra.yaml可以在类路径上,就像在这里所做的那样,可以是   在类路径中的某个位置指定(通过修改脚本)   像这样:java -Xmx1G   -Dcassandra.config = / path / in / classpath / to / cassandra.yaml ...或可以从类路径之外的位置检索,如下所示:...   -Dcassandra.config = file:///path/to/cassandra.yaml ...或... -Dcassandra.config = http://awesomesauce.com/cassandra.yaml ...

因此,您可能配置了错误的启动选项。

答案 4 :(得分:-1)

删除pid文件。试试

rm /var/run/cassandra.pid