65

在elasticsearch中重启节点的正确方法是什么?(最好通过 REST API,java API 也可以)

4

4 回答 4

82

重新启动节点的正确方法是关闭它,使用关闭 API或向进程发送TERM信号(例如使用kill $PID)。

关闭后,您可以使用用于运行 elasticsearch 的任何内容(例如服务包装器)启动新节点,或者仅从命令行启动它。

如果您正在使用服务包装器,您可以通过将restart命令传递给节点来重新启动节点:例如/etc/init.d/elasticsearch restart,但这只是上述的便利包装器。

restartAPI 自 0.11 版以来已被禁用,因为它存在问题。

于 2013-03-11T12:10:07.277 回答
15

每次节点宕机和/或新节点出现时,集群都会重新分配分片,当您只需要重新启动节点时可能不需要这样做,因此您可以使用滚动重启:

  1. 首先禁用分片分配:

    PUT /_cluster/settings { "transient" : { "cluster.routing.allocation.enable" : "none" } }

  2. 重启节点service elasticsearch restart

  3. 启用分片分配:

    PUT /_cluster/settings { "transient" : { "cluster.routing.allocation.enable" : "all" } }

更多信息:这里

于 2016-12-08T10:05:34.357 回答
8

有一个类似于关闭 API 的重启 API。只需将“关机”替换为“重启”即可。另请参阅github 上的问题

于 2013-01-02T08:50:43.133 回答
4

要重启 elasticserch 服务,首先检查状态,然后重启,这将给出一个清晰的画面

sudo service elasticsearch.service status -l    
sudo service elasticsearch.service restart
于 2019-12-10T05:53:32.343 回答