重新启动elasticsearch节点

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

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

一旦closures,你就可以使用任何你用来运行elasticsearch的新节点,例如服务包装器,或者从命令行启动它。

如果你使用的是服务包装,你可以通过传递restart命令来重新启动一个节点:例如/etc/init.d/elasticsearch restart但这只是上面的一个便捷包装。

restart API从版本0.11被禁用,因为它是有问题的。

有一个类似于closuresAPI的重启API 。 只需将“shutdown”replace为“restart”即可。 另请参阅github上的问题 。

每次节点closures和/或新节点出现时,群集重新分配碎片,当您只需要重新启动节点时可能不需要,因此您可以使用滚动重新启动:

  1. 先禁用碎片分配:

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

  2. 重启节点service elasticsearch restart

  3. 启用分片分配:

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

更多关于这个: 在这里