运行cassandra时出现gc.log文件错误

时间:2017-12-26 09:10:38

标签: cassandra

为了安装Cassandra,我做了以下事情: 1.下载TAR文件。 2.提取文件。 3.在yaml文件中设置数据和commitlog目录的路径。

现在当我运行Cassandra时,我收到以下错误: “Java HotSpot(TM)64位服务器VM警告:由于没有这样的文件或目录,无法打开文件./..logs/gc.log”

造成这个问题的原因是什么?在运行之前我是否需要做其他事情。

操作系统:RHEL 6.5 Cassandra版本:3.11.1

3 个答案:

答案 0 :(得分:4)

Cassandra将所有gcs记录在名为gc.log的日志文件中。该文件的路径在cassandra-env.sh中定义:

#GC log path has to be defined here because it needs to access CASSANDRA_HOME
JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log"

确保cassandra文件夹中有一个名为logs的文件夹,并且无论你运行cassandra的用户是否都对此文件夹写了permisssions。

答案 1 :(得分:0)

这对我有用: $ {CASSANDRA_HOME}是在/home/richard/.bashrc中设置的,但是对于Cassandra,您有一个Cassandra用户,因此$ {CASSANDRA_HOME}也必须放在Cassandra用户/home/cassandra/.bashrc中。我的Cassandra在

/usr/local/cassandra/apache-cassandra-3.11.3

为了添加日志,我做了一个sudo mkdir logs。然后-ls -la显示root root,所以我做了一个

sudo chwon cassandra:cassandra logs

执行cd ..进入一个目录并发出ls -la。我在上面的每个级别上都做了一个chown。我将它恢复到了/ usr / local,这可能是一个遥远的问题,以后会引起问题,但看起来风险很小。然后按照V9和更高版本的Java的要求,将home的.bashrc和Cassandra的-Xloggc更改为-Xlog:gc

From JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log"
To   JVM_OPTS="$JVM_OPTS -Xlog:gc:${CASSANDRA_HOME}/logs/gc.log"

我切换到Cassandra用户并成功启动Cassandra

sudo - cassandra

我有

export cassandra=/usr/local/cassandra/apache-cassandra-3.11.3/bin/cassandra

在.bashrc中,所以当我输入$ cassandra时,我的第一行回显:

in /usr/local/cassandra/apache-cassandra-3.11.3/conf/casandra-env.sh

我的最后一行是

StorageService.java:2289 - Node localhost/127.0.0.1 state jump to NORMAL

如果仍然有问题,请坚持下去。

richard@sony:~$ sudo updatedb
richard@sony:~$ locate .bashrc
/home/richard/.bashrc
/home/cassandra/.bashrc

richard@sony:/usr/local/cassandra/apache-cassandra-3.11.3/logs$ ls -la
total 1636
drwxr-xr-x  2 cassandra cassandra    4096 Sep 30 10:30 .
drwxrwxr-x 12 cassandra cassandra    4096 Sep 30 10:17 ..
-rw-rw-r--  1 cassandra cassandra 1569961 Sep 30 11:31 debug.log
-rw-rw-r--  1 cassandra cassandra    1116 Sep 30 11:46 gc.log
-rw-rw-r--  1 cassandra cassandra     945 Sep 30 10:18 gc.log.0
-rw-rw-r--  1 cassandra cassandra   85584 Sep 30 11:31 system.log

答案 2 :(得分:0)

我是Windows用户,遇到了类似的问题。我试图通过尝试不同的方法来解决它。尽管我忘记了一个简单的步骤,但是以管理员身份运行命令提示符。以管理员身份运行后,问题就解决了。