elasticsearch降级挑战:分配给本地恢复的分片(post api)应该存在,但不存在

时间:2014-09-04 16:27:31

标签: elasticsearch elasticsearch-indices

在我通过brew uninstall elasticsearch卸载elasticsearch 0.9.x后,我通过brew install elasticsearch-0.20安装了elasticsearch 0.20.6。

当我通过

启动服务器时
elasticsearch -f -D es.config=/usr/local/opt/elasticsearch-0.20/config/elasticsearch.yml

服务器无休止地记录以下异常:

[2014-09-04 18:06:14,613][WARN ][cluster.action.shard     ] [Jann] sending failed shard for [sensei_cucumber_news_feeds][0], node[gne6S-UYQPWnR9FqtKg_mw], [P], s[INITIALIZING], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[sensei_cucumber_news_feeds][0] shard allocated for local recovery (post api), should exists, but doesn't]]]
[2014-09-04 18:06:14,634][WARN ][indices.cluster          ] [Jann] [sensei_cucumber_news_feeds][0] failed to start shard
org.elasticsearch.index.gateway.IndexShardGatewayRecoveryException: [sensei_cucumber_news_feeds][0] shard allocated for local recovery (post api), should exists, but doesn't
    at org.elasticsearch.index.gateway.local.LocalIndexShardGateway.recover(LocalIndexShardGateway.java:122)
    at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexShardGatewayService.java:174)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)

我也想知道为什么指数仍然存在。卸载后应该删除索引,对吗?

localhost:9200/_cluster/health?pretty=true显示红色信号:

{
  "cluster_name": "elasticsearch_gawlim",
  "status": "red",
  "timed_out": false,
  "number_of_nodes": 1,
  "number_of_data_nodes": 1,
  "active_primary_shards": 0,
  "active_shards": 0,
  "relocating_shards": 0,
  "initializing_shards": 4,
  "unassigned_shards": 867
}

当我尝试在服务器上执行搜索请求时,我得到了

SearchPhaseExecutionException Failed to execute phase [query], total failure; shardFailures: No active shards

删除索引查询工作。

1 个答案:

答案 0 :(得分:0)

我通过以下命令手动删除索引,现在它可以工作:

curl -XDELETE 'http://localhost:9200/index_name'