节点启动失败:FileNotFoundException

时间:2015-04-14 13:56:20

标签: cassandra

我遇到了阻止我启动Cassandra守护程序的问题。

我正在使用Cassandra Community 2.1.4

我几个小时前创建了我的集群,它一直运行良好,直到我重新启动托管此节点的azure VM。 我的群集使用密码身份验证。

有什么想法吗?

编辑:我不知道它是否相关,但我尝试在重新启动之前删除键空间,但它失败了。 (不,我没有尝试删除system_auth键空间,以防你想知道)

Cassandra日志文件包含:

  

错误[MemtableFlushWriter:3] 2015-04-14 13:42:54,359   CassandraDaemon.java:223 - 线程中的异常   Thread [MemtableFlushWriter:3,5,main] java.lang.RuntimeException:   java.io.FileNotFoundException:   /var/lib/cassandra/data/system_auth/users-473588ad9c7938be8b59e06c10456ba0/system_auth-users-tmp-ka-2-Index.db   (没有权限)           在org.apache.cassandra.io.util.SequentialWriter。(SequentialWriter.java:80)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:109)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:104)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.io.sstable.SSTableWriter $ IndexWriter。(SSTableWriter.java:598)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.io.sstable.SSTableWriter。(SSTableWriter.java:135)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.db.Memtable $ FlushRunnable.createFlushWriter(Memtable.java:404)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.db.Memtable $ FlushRunnable.writeSortedContents(Memtable.java:343)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.db.Memtable $ FlushRunnable.runMayThrow(Memtable.java:327)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在com.google.common.util.concurrent.MoreExecutors $ SameThreadExecutorService.execute(MoreExecutors.java:297)   〜[番石榴16.0.jar:NA]           在org.apache.cassandra.db.ColumnFamilyStore $ Flush.run(ColumnFamilyStore.java:1092)   〜[Apache的卡桑德拉-2.1.4.jar:2.1.4]           在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)   〜[NA:1.7.0_76]           at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)   〜[NA:1.7.0_76]           在java.lang.Thread.run(Thread.java:745)〜[na:1.7.0_76]

EDIT2

前几行在日志文件中:

  

WARN [main] 2015-04-14 14:06:59,068 CommitLogReplayer.java:139 - 在提交日志/var/lib/cassandra/commitlog/CommitLog-4-1429010621980.log的第16位遇到错误的标题, CRC无效。该   段末端标记应为零。

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

  

java.io.FileNotFoundException:/var/lib/cassandra/data/system_auth/users-473588ad9c7938be8b59e06c10456ba0/system_auth-users-tmp-ka-2-Index.db(Permission denied)

这句话说,cassandra未经许可无法创建/var/lib/cassandra/data/system_auth/users-473588ad9c7938be8b59e06c10456ba0/system_auth-users-tmp-ka-2-Index.db。检查子目录的所有者是否为cassandra。如果不是,请将其分配给权限所有者cassandra并重新启动cassandra。

chown -R cassandra:cassandra /var/lib/cassandra/data/system_auth