我有一个包含多个节点的集群。我想将数据节点动态更改为主数据节点,这样就不会造成停机。最好的方法是什么?
答案 0 :(得分:0)
您无法动态更改节点的角色,在编辑elasticsearch.yml配置以指定您要执行或不希望节点执行的角色后,必须重新启动它。
为避免中断,请确保为受影响的索引至少设置了一个副本集,并建议使用另一个可用节点(建议)来承担从专用的主节点上删除的职责。群集应适当恢复,并且副本应无缝出现。
一旦拥有专用的主节点,您还将希望从其余群集节点中删除该角色,这也将需要重新启动。进行滚动重启(即一次重启,或等于为失败分配的次数),但在此之前禁用分片分配。群集恢复联机后,重新启用分片分配。这样可以防止未经请求的恢复。
〜致敬
答案 1 :(得分:0)
您还可以查看根据https://www.elastic.co/guide/en/elasticsearch/reference/current/allocation-filtering.html从托管分片中排除当前数据节点 这会将分片移动到其他数据节点。
然后,一旦节点没有分片(GET _cat / indices),则可以在设置node.data后将其重新启动:elasticsearch.yml中为false
不要忘记每个https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#split-brain正确设置Discovery.zen.minimum_master_nodes