ERROR [MemtableFlushWriter:1] 2019-11-05 19:23:08,691 LogReplicaSet.java:94 - Failed to create log replica C:\apache-cassandra-3.11.5\data\data\system\local-7ad54392bcdd35a684174e047860b377/C:\apache-cassandra-3.11.5\data\data\system\local-7ad54392bcdd35a684174e047860b377\md_txn_flush_99189c20-ffd3-11e9-b69e-0752c2cde782.log
org.apache.cassandra.io.FSReadError: java.io.IOException: Invalid folder descriptor trying to create log replica C:\apache-cassandra-3.11.5\data\data\system\local-7ad54392bcdd35a684174e047860b377
at org.apache.cassandra.db.lifecycle.LogReplica.create(LogReplica.java:58) ~[apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.lifecycle.LogReplicaSet.maybeCreateReplica(LogReplicaSet.java:86) ~[apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.lifecycle.LogFile.makeRecord(LogFile.java:311) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.lifecycle.LogFile.add(LogFile.java:283) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.lifecycle.LogTransaction.trackNew(LogTransaction.java:139) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.lifecycle.LifecycleTransaction.trackNew(LifecycleTransaction.java:528) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.io.sstable.format.big.BigTableWriter.<init>(BigTableWriter.java:81) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.io.sstable.format.big.BigFormat$WriterFactory.open(BigFormat.java:92) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.io.sstable.format.SSTableWriter.create(SSTableWriter.java:102) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.create(SimpleSSTableMultiWriter.java:119) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.compaction.AbstractCompactionStrategy.createSSTableMultiWriter(AbstractCompactionStrategy.java:588) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.compaction.CompactionStrategyManager.createSSTableMultiWriter(CompactionStrategyManager.java:1027) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.ColumnFamilyStore.createSSTableMultiWriter(ColumnFamilyStore.java:532) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.Memtable$FlushRunnable.createFlushWriter(Memtable.java:504) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.Memtable$FlushRunnable.<init>(Memtable.java:443) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.Memtable$FlushRunnable.<init>(Memtable.java:420) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.Memtable.createFlushRunnables(Memtable.java:307) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.Memtable.flushRunnables(Memtable.java:298) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.ColumnFamilyStore$Flush.flushMemtable(ColumnFamilyStore.java:1153) [apache-cassandra-3.11.5.jar:3.11.5]
at org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1118) [apache-cassandra-3.11.5.jar:3.11.5]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_191]
at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84) [apache-cassandra-3.11.5.jar:3.11.5]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]
Caused by: java.io.IOException: Invalid folder descriptor trying to create log replica C:\apache-cassandra-3.11.5\data\data\system\local-7ad54392bcdd35a684174e047860b377
... 24 common frames omitted
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个错误信息表明Apache Cassandra在尝试创建日志副本时遇到了问题,具体原因是无效的文件夹描述符。这可能是由于路径问题、权限不足或者文件系统错误导致的。为了解决这个问题,你可以尝试以下几个步骤:
检查路径是否正确:确保Cassandra配置中指定的数据目录路径是正确的,并且没有重复或多余的路径分隔符。从错误信息看,路径似乎被重复了一次,这是很不寻常的。正确的路径应该像这样:C:\apache-cassandra-3.11.5\data\data\system\local-7ad54392bcdd35a684174e047860b377\md_txn_flush_99189c20-ffd3-11e9-b69e-0752c2cde782.log
,而不是两个相同路径的拼接。
权限验证:确认Cassandra服务运行的用户具有对数据目录及其所有子目录的读写权限。在Windows上,你可能需要通过“安全”选项卡调整相应文件夹的权限设置,确保NETWORK SERVICE
账户(如果Cassandra以该账户运行)或自定义的服务账户有足够的权限。
文件系统检查:使用系统工具检查磁盘是否有错误。在Windows上,可以使用chkdsk
命令来检查并修复磁盘错误。
重启Cassandra服务:有时候,简单地重启服务可以解决一些临时性的问题。停止Cassandra服务后,再次启动,观察是否还有同样的错误。
清理和恢复:如果上述步骤都不能解决问题,可能需要考虑更彻底的措施,比如按照Cassandra的官方文档指导进行节点的清理和数据的恢复。但请注意,这一步骤可能会导致数据丢失,因此在操作之前务必做好数据备份。
查看日志文件:深入分析Cassandra的日志文件,可能会有更多关于错误的详细信息,帮助定位问题。
如果问题依然存在,建议查阅Cassandra的官方社区、论坛或Jira issue跟踪系统,看看是否有其他用户遇到过类似问题以及他们的解决方案。