在elasticsearch中重启节点的正确方法是什么?(最好通过 REST API,java API 也可以)
4 回答
重新启动节点的正确方法是关闭它,使用关闭 API或向进程发送TERM
信号(例如使用kill $PID
)。
关闭后,您可以使用用于运行 elasticsearch 的任何内容(例如服务包装器)启动新节点,或者仅从命令行启动它。
如果您正在使用服务包装器,您可以通过将restart
命令传递给节点来重新启动节点:例如/etc/init.d/elasticsearch restart
,但这只是上述的便利包装器。
该restart
API 自 0.11 版以来已被禁用,因为它存在问题。
每次节点宕机和/或新节点出现时,集群都会重新分配分片,当您只需要重新启动节点时可能不需要这样做,因此您可以使用滚动重启:
首先禁用分片分配:
PUT /_cluster/settings { "transient" : { "cluster.routing.allocation.enable" : "none" } }
重启节点
service elasticsearch restart
启用分片分配:
PUT /_cluster/settings { "transient" : { "cluster.routing.allocation.enable" : "all" } }
更多信息:这里
有一个类似于关闭 API 的重启 API。只需将“关机”替换为“重启”即可。另请参阅github 上的问题。
要重启 elasticserch 服务,首先检查状态,然后重启,这将给出一个清晰的画面
sudo service elasticsearch.service status -l
sudo service elasticsearch.service restart