关闭开启ES集群顺序:
* 第一步,禁止分片自动分布
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
*
第二步,执行同步刷新
POST _flush/synced
*
第三步,各节点逐个关闭
# 通过服务关闭# sudo systemctl stop elasticsearch.service# 发送TERM信号关闭进程kill $(cat pid.txt)如何启动ES集群
*
第一步,执行完操作后逐个启动节点,先master节点再其他节点
cd $ES_HOME/bin
./elasticsearch -d -p $ES_HOME/pid.txt
*
第二步,等待所有节点加入集群
查看集群状态是否为"yellow"或者"green"
GET _cat/health
GET _cat/nodes
*
第三步,启用分片自动分布("yellow"或者"green"后)
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": null
}
}
*
第四步,等待集群可用
通过集群的状态和恢复进程监控集群是否可用
索引UNASSIGNED修正:
第一看集群状态:
curl -XGET 'http://localhost:9200/_cluster/health'
第二,看所有的shards:
curl -XGET 'http://localhost:9200/_cat/shards'
查看elasticsearch所有UNASSIGNED状态的索引
curl -XGET 'http://192.168.10.70:9200/_cat/shards' |grep UNASSIGNED
修复子节点有Unassigned Shards
POST /_cluster/reroute?retry_failed=true
{
"commands" : [
{
"allocate_replica" : {
"index" : "crawlab12_result",
"shard" : 16,
"node" : "es01"
}
}
]
}