2017-08-11 77 views
0

我在启动cassandra时遇到问题。我正在使用Datastax版本。当我开始cassandra时,它正在关闭下面的问题。写入提交日志文件的问题cassandra

ERROR [main] 2017-08-10 20:42:04,999 CassandraDaemon.java:654 - Exception encountered during startup 
org.apache.cassandra.io.FSWriteError: java.nio.file.AccessDeniedException: C:\Program Files\DataStax Community\data\commitlog\CommitLog-5-1502421528137.log 
at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:131) ~[apache-cassandra-2.2.8.jar:2.2.8] 
at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:148) ~[apache-cassandra-2.2.8.jar:2.2.8] 
at org.apache.cassandra.db.commitlog.CommitLogSegmentManager.recycleSegment(CommitLogSegmentManager.java:365) ~[apache-cassandra-2.2.8.jar:2.2.8] 
at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:165) ~[apache-cassandra-2.2.8.jar:2.2.8] 
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:284) [apache-cassandra-2.2.8.jar:2.2.8] 
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:532) [apache-cassandra-2.2.8.jar:2.2.8] 
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:641) [apache-cassandra-2.2.8.jar:2.2.8] 
Caused by: java.nio.file.AccessDeniedException: C:\Program Files\DataStax Community\data\commitlog\CommitLog-5-1502421528137.log 
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83) ~[na:1.7.0_40] 
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.7.0_40] 
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.7.0_40] 
at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) ~[na:1.7.0_40] 
at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.7.0_40] 
at java.nio.file.Files.delete(Files.java:1077) ~[na:1.7.0_40] 
at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:125) ~[apache-cassandra-2.2.8.jar:2.2.8] 
... 6 common frames omitted 

我试图保留对下面的文件夹的所有权限并重新启动很多次。

C:\Program Files\DataStax Community\data 

但仍然出现相同的错误,我正在使用windows 10

请建议。

+0

您是否尝试过从管理员启动cassandra? – Sabik

回答

1

的一些想法去尝试或查看:

  • 在后台的任何防病毒扫描Windows需要设置排除你的数据目录,也可以导致此
  • 这可能是心不是一个间歇性问题固定,因为它不容易重现。 (CASSANDRA-9414)使用Windows的Cassandra用户并不多,因此可能会有更多粗糙的边缘。如果可能的话,你可能要考虑在Linux主机它获取更多的测试/使用(不是最有用的答案,我知道)
    • 尝试升级到最新版本或切换到Linux
  • 上检查文件权限C:\Program Files\DataStax Community\data\commitlog\CommitLog-5-1502421528137.log。您可以更改该文件的权限或删除该提交日志并进行修复,以确保您没有触发任何不一致。
    • 要寻找的东西特别是拥有该文件的用户。有很多像sstablesplit,sstablelevelreset,sstableexpiredblockers,sstablemetadata,sstable2json这样的工具,它们将使用cassandra.yaml以客户端模式运行cassandra。由于它具有重叠的数据和提交日志位置,并且它会触发内部写入(特别是sstable活动表),所以最终可以使用任何用户运行该工具来刷新提交日志或创建新的sstable。如果该用户与用于运行Cassandra的用户不同,则可能导致类似的失败。工具正在慢慢地被重写,使得这个问题更少(即sstabledump,4.0 sstablemetadata),但是如果你使用这些工具这样的问题是需要注意的。
+0

我尝试了一些选项,提交日志没有被删除..但我强制使用MCAFEE碎化选项和文件被删除。但是,当Windows重新启动时,它们会以新的时间戳创建,并且当我启动cassandra时,它给了我同样的问题。作为最后的尝试,我可能需要安装新的cassandra版本,如果没有,我必须在Linux中尝试。 – user2883028

+0

Cassandra没有权限写入'C:\ Program Files \ DataStax Community \ data \ commitlog'吗? –

+0

如前所述,我卸载了现有的datastax版本,并安装了另一个datastax版本和不同的JDK,并且该组合运行良好。感谢大家的所有时间。 – user2883028