直到3天前,我的弹性搜索(本地安装)工作得很好。
今天它因连接错误而停止工作。
requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=9200): Max retries exceeded with url:
我也尝试了以下选项。
curl -XGET http://127.0.0.1:9200
curl: (7) Failed to connect to 127.0.0.1 port 9200: Connection refused
我尝试使用以下代码手动运行它并收到以下错误。
cd /usr/local/Cellar/elasticsearch/2.4.0
ElasticsearchException[failed to read [id:206, legacy:false, file:/usr/local/var/elasticsearch/elasticsearch_sam/nodes/0/_state/global-206.st]]; nested: IOException[failed to read [id:206, legacy:false, file:/usr/local/var/elasticsearch/elasticsearch_sam/nodes/0/_state/global-206.st]]; nested: CorruptStateException[Format version is not supported (resource SimpleFSIndexInput(path="/usr/local/var/elasticsearch/elasticsearch_sam/nodes/0/_state/global-206.st"))
我使用的弹性搜索版本是2.4.0,java版本是java版本" 1.8.0_101"我正在运行MAC系统
我将所有数据存储在弹性搜索中,没有任何备份。
如果有人能帮我解决这个问题,我很高兴
由于
答案 0 :(得分:1)
你得到一个CorruptStateException,这意味着Elasticsearch检测到其中一个持久状态的不一致。
基本上只是识别破碎的碎片curl -XGET http://localhost:9200/_cluster/state?pretty=true > foo.json
分片将具有“INITIALIZING”状态并具有其节点ID
关联,它会让你知道被阻止的碎片在哪里。
如果您正在使用一个副本,并且另一个分片有效启动,
你可以删除包含破碎碎片的目录(你的那个)
执行检查索引的事情)它应该基于的重建自己
其他未损坏的碎片(来自另一个节点)。
答案 1 :(得分:0)
以防遇到问题的人:Guice Exception: ElasticsearchException[failed to read...
Likely root cause: org.elasticsearch.gateway.CorruptStateException: Format version is not supported
。只需删除/usr/local/var/elasticsearch
中的所有文件夹/文件,然后该服务即应备份并运行。
希望这有帮助。