在安装了Cassandra的服务器中的未指定循环中,提示文件夹会自行删除,这会阻止连接到Cassandra。发生的日志如下所示。
[2020-03-01 10:08:17,045] [STORAGE] [INFO] [CompactionExecutor:298] AutoSavingCache.java:404 - Saved KeyCache (100 items) in 7 ms
[2020-03-01 10:09:05,880] [STORAGE] [INFO] [IndexSummaryManager:1] IndexSummaryRedistribution.java:84 - Redistributing index summaries
[2020-03-01 11:09:05,884] [STORAGE] [INFO] [IndexSummaryManager:1] IndexSummaryRedistribution.java:84 - Redistributing index summaries
[2020-03-01 11:25:31,759] [STORAGE] [WARN] [HintsWriteExecutor:1] NativeLibrary.java:316 - open(/tmp/cassandra/hints, O_RDONLY) failed, errno (2).
[2020-03-01 11:25:31,759] [STORAGE] [ERROR] [HintsWriteExecutor:1] HintsCatalog.java:166 - Unable to open directory /tmp/cassandra/hints
[2020-03-01 11:25:31,761] [STORAGE] [ERROR] [HintsWriteExecutor:1] StorageService.java:397 - Stopping gossiper
[2020-03-01 11:25:31,761] [STORAGE] [WARN] [HintsWriteExecutor:1] StorageService.java:307 - Stopping gossip by operator request
[2020-03-01 11:25:31,761] [STORAGE] [INFO] [HintsWriteExecutor:1] Gossiper.java:1801 - Announcing shutdown
[2020-03-01 11:25:31,762] [STORAGE] [INFO] [HintsWriteExecutor:1] StorageService.java:2498 - Node 192.168.0.50:7000 state jump to shutdown
[2020-03-01 11:25:31,763] [STORAGE] [INFO] [HintsWriteExecutor:1] StorageService.java:2498 - Node 192.168.0.50:7000 state jump to shutdown
[2020-03-01 11:25:33,765] [STORAGE] [ERROR] [HintsWriteExecutor:1] StorageService.java:402 - Stopping native transport
[2020-03-01 11:25:33,768] [STORAGE] [INFO] [HintsWriteExecutor:1] Server.java:213 - Stop listening for CQL clients
[2020-03-01 11:25:33,771] [STORAGE] [ERROR] [HintsWriteExecutor:1] CassandraDaemon.java:442 - Exception in thread Thread[HintsWriteExecutor:1,5,main]
org.apache.cassandra.io.FSWriteError: java.io.IOException: Unable to open hint directory /tmp/cassandra/hints
at org.apache.cassandra.hints.HintsCatalog.fsyncDirectory(HintsCatalog.java:167)
at org.apache.cassandra.hints.HintsWriteExecutor$FsyncWritersTask.run(HintsWriteExecutor.java:204)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Unable to open hint directory /tmp/cassandra/hints
... 8 common frames omitted
[2020-03-01 11:25:33,771] [STORAGE] [ERROR] [BatchlogTasks:1] CassandraDaemon.java:442 - Exception in thread Thread[BatchlogTasks:1,5,main]
java.lang.RuntimeException: java.util.concurrent.ExecutionException: FSWriteError in /tmp/cassandra/hints
at org.apache.cassandra.hints.HintsWriteExecutor.fsyncWritersBlockingly(HintsWriteExecutor.java:107)
at org.apache.cassandra.hints.HintsService.flushAndFsyncBlockingly(HintsService.java:200)
at org.apache.cassandra.batchlog.BatchlogManager.processBatchlogEntries(BatchlogManager.java:313)
at org.apache.cassandra.batchlog.BatchlogManager.replayFailedBatches(BatchlogManager.java:226)
at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: FSWriteError in /tmp/cassandra/hints
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.cassandra.hints.HintsWriteExecutor.fsyncWritersBlockingly(HintsWriteExecutor.java:103)
... 12 common frames omitted
Caused by: org.apache.cassandra.io.FSWriteError: java.io.IOException: Unable to open hint directory /tmp/cassandra/hints
at org.apache.cassandra.hints.HintsCatalog.fsyncDirectory(HintsCatalog.java:167)
at org.apache.cassandra.hints.HintsWriteExecutor$FsyncWritersTask.run(HintsWriteExecutor.java:204)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 4 common frames omitted
Caused by: java.io.IOException: Unable to open hint directory /tmp/cassandra/hints
... 8 common frames omitted这发生在Cassandra db中,它在基于Spring Framework的web系统中使用,除非重启,否则无法连接。在Spring框架中,定期执行将数据从另一个RDB迁移到Cassandra的调度,并且每天都会执行调度器。而且,执行时间是午夜时间。
我想知道是否有从Cassandra本身删除提示文件夹的情况,如果发生这种情况,是否有方法确定原因。
cassandra版本是cassandra-4.0-snapshot。
发布于 2020-06-11 08:53:58
此问题与服务器操作系统(CentOS 7版本)有关。原因没有记录在Cassandra的日志中,因为临时文件夹中超过10天未使用的文件夹和文件在操作系统上每天执行的crontab中被删除。
根据操作系统类型和版本不同,可能会有所不同,但在CentOS 7版本中,可以在临时文件夹之间设置删除例外,如下所示。
vim /usr/lib/tmpfiles.d/tmp.conf
添加下面的短语来解决它。
x /tmp/folder_to_except
https://stackoverflow.com/questions/61264024
复制相似问题