数据节点下线
参考文档
集群版本
两种情况
非数据节点
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
  }
}