假设我在集群中有5个节点,我必须在运行时删除2个节点,那么如何才能做到这一点而不影响索引呢?我有连续的数据流来在近10 Gbphour这是越来越索引不断。在这方面,再平衡会有所帮助吗?
ia2d9nvy1#
您可以通过通知群集将节点从分配中排除来停用该节点。(来自文档here)
curl -XPUT localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d '{ "transient" :{ "cluster.routing.allocation.exclude._ip" : "10.0.0.1" } }';echo
这将导致Elasticsearch将该节点上的碎片分配给其余节点,而集群的状态不会变为黄色或红色(即使您的replication为0)。一旦所有的碎片都被重新分配,你可以关闭节点,然后做你需要做的任何事情。一旦你完成了,包含节点进行分配,Elasticsearch会再次重新平衡碎片。
eyh26e7m2#
要从集群中删除elasticsearch节点,只需运行以下命令
curl -XPUT P.P.P.P:9200/_cluster/settings -H 'Content-Type: application/json' -d '{ "transient" :{ "cluster.routing.allocation.exclude._ip" : "X.X.X.X" } }';echo
这里P.P.P.P是主节点的私有IP,如果在localhost上运行elasticsearch,您也可以使用localhost。X.X.X.X是要从集群中删除的节点的私有IP。如果接受删除节点,此命令将向acknowledgementtrue提供信息,并且将启动数据位置调整。请检查数据位置调整是否已结束,并且节点上是否没有剩余的碎片,然后停止elasticsearch进程和stop/terminate示例。可以在this article上找到检查数据位置调整和剩余碎片的命令。
P.P.P.P
localhost
X.X.X.X
acknowledgement
true
elasticsearch
stop/terminate
2条答案
按热度按时间ia2d9nvy1#
您可以通过通知群集将节点从分配中排除来停用该节点。(来自文档here)
这将导致Elasticsearch将该节点上的碎片分配给其余节点,而集群的状态不会变为黄色或红色(即使您的replication为0)。
一旦所有的碎片都被重新分配,你可以关闭节点,然后做你需要做的任何事情。一旦你完成了,包含节点进行分配,Elasticsearch会再次重新平衡碎片。
eyh26e7m2#
要从集群中删除elasticsearch节点,只需运行以下命令
这里
P.P.P.P
是主节点的私有IP,如果在localhost
上运行elasticsearch,您也可以使用localhost
。X.X.X.X
是要从集群中删除的节点的私有IP。如果接受删除节点,此命令将向
acknowledgement
true
提供信息,并且将启动数据位置调整。请检查数据位置调整是否已结束,并且节点上是否没有剩余的碎片,然后停止elasticsearch
进程和stop/terminate
示例。可以在this article上找到检查数据位置调整和剩余碎片的命令。