I have problems starting Cassandra. The follow is my terminal output when I try to issue a start command:
root@gestion:~# cassandra -f
Exception in thread "main"
java.lang.ExceptionInInitializerError Caused by:
java.lang.RuntimeException: Couldn't figure out log4j configuration.
at
org.apache.cassandra.service.AbstractCassandraDaemon.(AbstractCassandraDaemon.java:75)
Could not find the main class:
org.apache.cassandra.thrift.CassandraDaemon.
Program will exit.
I exported the JAVA_HOME path. I am on an 10.04 Lucid machine. Can anyone please help me?
Actually the issue is that cassandra could not start up as it is not finding the file named "log4j-server.properties" in its configuration directory, to resolve the issue you have there, no need to reinstall it again but instead simply do the following to resolve the issue:
1) Download the tarball file from here.
2) Extract it:
$ tar -xzvf apache-cassandra-1.2.5.tar.bin.gz
3) Check where is the configuration path of cassandra. you could get the config path from file named "/usr/share/cassandra/cassandra.in.sh", check out the key named "CASSANDRA_CONF".
$ gedit /usr/share/cassandra/cassandra.in.sh
4) copy the missing files manually from the extracted package (step 2) from a directory named "conf"
$ sudo cp extracted_cassandra/conf/cassandra.yaml /etc/cassandra
$ sudo cp extracted_cassandra/conf/log4j-server.properties /etc/cassandra
Hints:
For more info. how to install cassandra debian package, check this
For more info. how to install cassandra from their repository, check this
If you want to re-install it, simply you could do the following:
$ sudo apt-get remove cassandra
$ sudo apt-get install cassandra
I think the error is in the $CASSANDRA_HOME/conf/log4j-server.properties file. Maybe you have defined an appender which does not exist (log4j.appender.R)
See https://issues.apache.org/jira/browse/CASSANDRA-2383 for some discussion of the log4j initialization.
"Couldn't figure out log4j configuration" means that Cassandra couldn't convert your -Dlog4j.configuration property to a valid log4j config filename. It doesn't mean there's an error in the log4j config file itself.