首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从ES集群中取消碎片分配

无法从ES集群中取消碎片分配
EN

Stack Overflow用户
提问于 2017-02-15 09:26:09
回答 1查看 67关注 0票数 0

我创建了一个ES集群,在三台不同的机器上运行ES。为了使它们成为集群,我在elasticsearch.yml配置文件中的所有3台机器中添加了如下所示的单播配置。

代码语言:javascript
复制
discovery.zen.ping.unicast.hosts:[IP1, IP2, IP3] 

当我跑的时候

代码语言:javascript
复制
curl -XGET localhost:9200/_cluster/health?pretty

现在我想从集群中删除一个节点,所以在不改变任何配置文件的情况下,我运行以下命令

代码语言:javascript
复制
curl -XPUT localhost:9200/_cluster/settings -d '{
"transient" :{
    "cluster.routing.allocation.exclude._ip" : "IP_adress_of_Node3"
}
}';

在这之后,我再次运行第二个命令来获取集群的详细信息,预期的输出是NO_of_nodes应该是2,但是结果是,即使排除了节点,它仍然显示了数量的nodes=3。如果有人能告诉我删除节点的步骤有什么问题,将会有很大的帮助。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-15 09:33:47

发送到集群的命令cluster.routing.allocation.exclude._ip实际上不会从集群中删除节点,而是为删除做好准备。这样做的是,它指示Elasticsearch将此节点上的所有碎片移出该节点,并将其存储在其他节点上。这允许您在节点为空时删除它,而不会导致存储在此节点上的碎片的复制不足。

要从集群中实际删除节点,需要将其从单播主机列表中删除。当然,您也可以关闭它并将其保留在列表中,直到您下一次需要重新启动集群为止,据我所知,这不会对您造成任何伤害。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42245327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档