我创建了一个ES集群,在三台不同的机器上运行ES。为了使它们成为集群,我在elasticsearch.yml配置文件中的所有3台机器中添加了如下所示的单播配置。
discovery.zen.ping.unicast.hosts:[IP1, IP2, IP3] 当我跑的时候
curl -XGET localhost:9200/_cluster/health?pretty现在我想从集群中删除一个节点,所以在不改变任何配置文件的情况下,我运行以下命令
curl -XPUT localhost:9200/_cluster/settings -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "IP_adress_of_Node3"
}
}';在这之后,我再次运行第二个命令来获取集群的详细信息,预期的输出是NO_of_nodes应该是2,但是结果是,即使排除了节点,它仍然显示了数量的nodes=3。如果有人能告诉我删除节点的步骤有什么问题,将会有很大的帮助。
谢谢
发布于 2017-02-15 09:33:47
发送到集群的命令cluster.routing.allocation.exclude._ip实际上不会从集群中删除节点,而是为删除做好准备。这样做的是,它指示Elasticsearch将此节点上的所有碎片移出该节点,并将其存储在其他节点上。这允许您在节点为空时删除它,而不会导致存储在此节点上的碎片的复制不足。
要从集群中实际删除节点,需要将其从单播主机列表中删除。当然,您也可以关闭它并将其保留在列表中,直到您下一次需要重新启动集群为止,据我所知,这不会对您造成任何伤害。
https://stackoverflow.com/questions/42245327
复制相似问题