数据节点下线
参考文档
集群版本
两种情况
非数据节点
master-eligible
节点下线须确保集群中剩余的master-eligible
节点仍不低于minimum_master_nodes
数量
- 否则则会造成集群无法选举
Master节点
,集群崩溃
- 也可以提前修改
minimum_master_nodes
数量,确保集群正常
PUT /_cluster/settings
{
"persistent": {
"discovery.zen.minimum_master_nodes":1
}
}
- 其他像
Coordinating Node
、 Ingest Node
因不包含数据又不参与集群选举,因此直接下线即可
数据节点
- 很明显,需要先将
Data Node
上的分片转移到其他节点上,Data Node
才能下线
- 根据
Cluster
级别的 Allocation
设置可以排查某个 Node
7.3
版本支持 _name
、 _ip
、 _host
三种属性来分配分片
- 比如我们需要将节点
Hot51
下线,则参考下述命令
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._name": "Hot51"
}
}
检查验证
- 等待分片转移完成,可以通过
Kibana
的 Monitor
来查看正在进行的 Task
- 也可以通过
Dev Tool
来查看
GET _cluster/health
{
"cluster_name" : "XXXXXX",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 79,
"number_of_data_nodes" : 72,
"active_primary_shards" : 14880,
"active_shards" : 14906,
"relocating_shards" : 10,
"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
}
relocating_shards
就是正在重分配
的分片数量
等待
relocating_shards数量为
0`就全部迁移完成
- 同时通过确认该节点上是否还有
doc
来确保迁移是否完成而不是因其他因素被中断
GET _nodes/Hot51/stats/indices?human
....
"indices" : {
"docs" : {
"count" : 1627525401,
"deleted" : 150809024
},
"store" : {
"size" : "1.1tb",
"size_in_bytes" : 1216926382209
},
....
- 等待
docs.count
为 0 即该节点无任何数据了。
- 然后下线该节点即可
- 最后别忘了移除集群中的配置
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._name": null
}
}