0
我已经创建了ES群集,ES在三台不同的机器上运行。为了使它们成为集群,我在elasticsearch.yml配置文件的所有3机器中添加了如下的单播配置。无法从ES群集中分离碎片
discovery.zen.ping.unicast.hosts:[IP1, IP2, IP3]
当我运行
curl -XGET localhost:9200/_cluster/health?pretty
正在逐渐No_of_nodes为3。现在,我想从集群 所以删除一个节点无需更改任何配置文件,我跑以下命令
curl -XPUT localhost:9200/_cluster/settings -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "IP_adress_of_Node3"
}
}';
在此之后,我再次运行第二个命令以获取集群详细信息,预期的输出是NO_of_nodes应该是2,但在结果显示节点数= 3仍然前夕n排除节点后。如果有人能够告诉我在删除节点的步骤中出现了什么问题,这将非常有帮助。
感谢
感谢您的意见,我还有一个,所以我在单播中的条目是正确的吗?我的意思是说,在我的配置文件中,我已经为所有3个机器配置文件中的所有3个节点创建了一个条目是否正确? –
而且对于排除API,它应该将排除的IP下的分片移动到剩余节点,但在我的情况下,仍然会看到标记为排除的Node下的分片。可能是什么问题 –
Elasticsearch在尝试重新分配碎片(复制因子,磁盘空间......)时还考虑了其他一些事情,因此可能有多种原因,为什么在您的特定情况下它不会重新分配碎片。你可以运行分配解释API(https://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-allocation-explain.html)并创建一个新的问题与输出? –