Не удалось записать состояние индекса, вызванное изменением базового файла внешней силой - PullRequest
0 голосов
/ 25 марта 2019

Я случайно удалил все файлы по пути /home/plog/elk/data/elasticsearch-data, а затем состояние исправности es отображается в red.
Я перезагружаю демоны es и в журналах не удается найти файл /home/plog/elk/data/elasticsearch-data/nodes/0/node.lock.
И затемЯ запускаю es на каждом сервере отдельно, который может автоматически генерировать node.lock. Проблема с невозможностью найти файл была решена.
Но исправное состояние es по-прежнему отображается в red.Журнал показывает failed to write index state, вызванный Underlying file changed by an external force.
Как я могу решить эту проблему
Журнал ошибок выглядит следующим образом:

[2019-03-25T10:23:32,610][WARN ][o.e.g.MetaStateService   ] [es] [[test_2019.03.10/L3uPPm-vSSW_aG6Qvzih5A]]: failed to write index state
org.apache.lucene.store.AlreadyClosedException: Underlying file changed by an external force at 2019-03-25T02:03:45.489478Z, (lock=NativeFSLock(path=/home/plog/elk/data/elasticsearch-data/nodes/0/node.lock,impl=sun.nio.ch.FileLockImpl[0:9223372036854775807 exclusive valid],creationTime=2019-02-27T08:51:35.409994Z))
    at org.apache.lucene.store.NativeFSLockFactory$NativeFSLock.ensureValid(NativeFSLockFactory.java:191) ~[lucene-core-7.5.0.jar:7.5.0 b5bf70b7e32d7ddd9742cc821d471c5fabd4e3df - jimczi - 2018-09-18 13:01:13]
    at org.elasticsearch.env.NodeEnvironment.assertEnvIsLocked(NodeEnvironment.java:999) ~[elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.env.NodeEnvironment.indexPaths(NodeEnvironment.java:798) ~[elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.gateway.MetaStateService.writeIndex(MetaStateService.java:124) ~[elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.gateway.GatewayMetaState.applyClusterState(GatewayMetaState.java:173) ~[elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.cluster.service.ClusterApplierService.lambda$callClusterStateAppliers$6(ClusterApplierService.java:481) ~[elasticsearch-6.5.4.jar:6.5.4]
    at java.lang.Iterable.forEach(Iterable.java:75) [?:1.8.0_202]
    at org.elasticsearch.cluster.service.ClusterApplierService.callClusterStateAppliers(ClusterApplierService.java:478) [elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.cluster.service.ClusterApplierService.applyChanges(ClusterApplierService.java:465) [elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.cluster.service.ClusterApplierService.runTask(ClusterApplierService.java:416) [elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.cluster.service.ClusterApplierService$UpdateTask.run(ClusterApplierService.java:160) [elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:624) [elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:244) [elasticsearch-6.5.4.jar:6.5.4]
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:207) [elasticsearch-6.5.4.jar:6.5.4]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_202]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_202]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]

1 Ответ

0 голосов
/ 25 марта 2019

Решено. Я удалил все индексы, затем удалил папку узлов и снова запустил.
Проверьте это сообщение в блоге: https://discuss.elastic.co/t/distress-elasticsearch-does-not-start/152288

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...