我对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类代码。
请再说一下根本原因以及如何解决它?
提前致谢。
答案 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