重新启动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和/或新节点出现时,群集重新分配碎片,当您只需要重新启动节点时可能不需要,因此您可以使用滚动重新启动:
-
先禁用碎片分配:
PUT / _cluster / settings {“transient”:{“cluster.routing.allocation.enable”:“none”}}
-
重启节点
service elasticsearch restart
-
启用分片分配:
PUT / _cluster / settings {“transient”:{“cluster.routing.allocation.enable”:“all”}}
更多关于这个: 在这里