ElasticSearch无法打开文件来读取校验和

时间:2014-11-24 15:16:49

标签: elasticsearch

ElasticSearch在几个节点上的磁盘空间不足,这就是产生的错误

我们得到的错误是:

 [WARN][indices.store   ] [odr-es-md15] Can't open file to read checksums
 java.io.FileNotFoundException: No such file [_2rlb_es090_0.pos]
at org.elasticsearch.index.store.DistributorDirectory.getDirectory(DistributorDirectory.java:176)
at org.elasticsearch.index.store.DistributorDirectory.getDirectory(DistributorDirectory.java:144)
at org.elasticsearch.index.store.Store$MetadataSnapshot.buildMetadata(Store.java:482)
at org.elasticsearch.index.store.Store$MetadataSnapshot.<init>(Store.java:456)
at org.elasticsearch.index.store.Store.readMetadataSnapshot(Store.java:281)
...
...
...

1 个答案:

答案 0 :(得分:0)

translog可能已损坏。我按照这里的指示:

http://unpunctualprogrammer.com/2014/05/13/corrupt-elasticsearch-translogs/

  

要解决此问题,您需要查看ES日志,   CentOS的/var/log/elasticsearch/elasticsearch.log,找到了   上面的错误行。在这些行上你会看到类似

的内容
[<timestamp>][WARN ][cluste.action.shard] [<wierd name>] [logstash-2014.05.13][X]
     

其中X(分片)是某个数字,可能是(0,1,2,3,4)和块   在那之前,logstash-date对我来说,如果你集中管理你   像我们一样记录,是索引名称。然后你需要去   索引位置,/ var / lib / elasticsearch / elasticsearch / nodes / 0 / indices /   在centos上。在该目录中,您将能够找到以下内容   结构,logstash-date / X / translog / translog-。   那是你需要删除的文件,所以:

sudo service stop elasticsearch
sudo rm /var/lib/elasticsearch/elasticsearch/nodes/0/indices/logstash-date/X/translog/translog-blalblabla
repeat step 2 for all indices and shards in the error log
sudo service start elasticsearch
     

观察日志并根据需要重复该过程,直到ES日志   停止吐出堆栈痕迹。