Recovering unassigned shards on elasticsearch 2.x——副本shard可以设置replica为0在设置回来
2017-08-31 17:24
260 查看
Recovering unassigned shards on elasticsearch 2.x
摘自:https://z0z0.me/recovering-unassigned-shards-on-elasticsearch/I got accross the problem when decided to add a node to the elasticsearch cluster and that node was not able to replicate the indexes of the cluster. This issue is usually happens when there is not enough disk space available, or not available master or different elasticsearch version. While my servers had more than enough disk space and also the master was available with the help of the elasticsearch discuss I found out that the new node was having a different version than old nodes. Basically while installing on Debian jessie I just run
apt-get install elasticsearchwhich ended up installing the latest available version. To install a specific version of the elasticsearch you prety much need to add
={version}.
#apt-get install elasticsearch={version}
Now that I have identified the reasons for unallocated shards and successfully downgraded the elasticsearch to the required version by running the command above after starting the node the cluster was still in red state with unassigned shards all over the place:
#curl http://localhost:9200/_cluster/health?pretty { "cluster_name" : "z0z0", "status" : "red", "timed_out" : false, "number_of_nodes" : 3, "number_of_data_nodes" : 3, "active_primary_shards" : 6, "active_shards" : 12, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 8, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 60.0 } #curl http://localhost:9200/_cat/shards site-id 4 p UNASSIGNED site-id 4 r UNASSIGNED site-id 1 p UNASSIGNED site-id 1 r UNASSIGNED site-id 3 p STARTED 0 159b 10.0.0.6 node-2 site-id 3 r STARTED 0 159b 10.0.0.7 node-3 site-id 2 r STARTED 0 159b 10.0.0.6 node-2 site-id 2 p STARTED 0 159b 10.0.0.7 node-3 site-id 0 r STARTED 0 159b 10.0.0.6 node-2 site-id 0 p STARTED 0 159b 10.0.0.7 node-3 subscription 4 p UNASSIGNED subscription 4 r UNASSIGNED subscription 1 p UNASSIGNED subscription 1 r UNASSIGNED subscription 3 p STARTED 0 159b 10.0.0.6 node-2 subscription 3 r STARTED 0 159b 10.0.0.7 node-3 subscription 2 r STARTED 0 159b 10.0.0.6 node-2 subscription 2 p STARTED 0 159b 10.0.0.7 node-3 subscription 0 p STARTED 0 159b 10.0.0.6 node-2 subscription 0 r STARTED 0 159b 10.0.0.7 node-3
At this point I was pretty desperate and whatever I tried it either did not do anything or ended up in all kind of failures. So I set the
number_of_replicasto
0by running the following query:
#curl -XPUT http://localhost:9200/_settings?pretty -d ' { "index" : { "number_of_replicas' : 0 } }'
and started to stop the nodes one by one until I was having only one live node.
At this point I decided to start trying to reroute the unassigned shards and if it won't work I would just start over my cluster. So I did run the following:
#curl -XPOST -d ' { "commands" : [ { "allocate" : { "index" : "site-id", "shard" : 1, "node" : "node-3", "allow_primary" : true } } ] }' http://localhost:9200/_cluster/reroute?pretty
I've seen that the rerouted shard became initialized then running so I did the same command on the rest of unassigned shards.
Running
curl http://localhost:9200/_cluster/health?pretty[/code] confirmed that I am on the good track to fix the cluster.#curl http://localhost:9200/_cluster/health?pretty { "cluster_name" : "z0z0", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 10, "active_shards" : 20, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }
So the cluster was green again but was running out of one node. So it was time to bring up the other nodes one by one. When all the nodes were up I set thenumber_of_replicasto1by running the following:#curl -XPUT http://localhost:9200/_settings -d ' { "index" : { "number_of_replicas" : 1 } }'
So my elasticsearch cluster is back on running 3 nodes and still in green state. After alot of googling and wasted time I decided to write this article so that if anyone would come accross this issue would have a working example of how to fix it.
相关文章推荐
- elasticsearch shard UNASSIGNED 修复
- elasticsearch red 无法修复,查看发现是unassigned shards 有无法分配的节点的分片
- How to resolve unassigned shards in Elasticsearch——写得非常好
- Elasticsearch cluster health: yellow unassigned shards
- Elasticsearch yellow unassigned_shards 恢复 replicas 节点恢复
- 给Elasticsearch 5.2.2 设置用户权限 how to setting security for elasticsearch on windows
- elasticsearch UNASSIGNED 处理
- Replica Set设置一个延迟复制副本集成员
- Elasticsearch内存分配设置详解(转)
- jquery设置背景图片:$(this).css("background-image","url(on.jpg)");就可以了
- Replica Set设置一个延迟复制副本集成员
- 当 Elasticsearch 遇上 MaxCompute —— 「Elasticsearch on MaxCompute 」简介
- Replica Set设置一个延迟复制副本集成员
- Replica Set设置一个延迟复制副本集成员
- Replica Set设置一个延迟复制副本集成员
- 搜索引擎的分片(shard)和副本(replica)
- 当 Elasticsearch 遇上 MaxCompute —— 「Elasticsearch on MaxCompute 」简介
- Replica Set设置一个延迟复制副本集成员
- Replica Set设置一个延迟复制副本集成员
- Replica Set设置一个延迟复制副本集成员