我想用新配置重新启动一个elasticsearch节点。什么是正常关闭节点的最佳方式?如何停止/关闭elasticsearch节点?
是否正在终止关闭服务器的最佳方式,或者是否存在一些可用于关闭节点的魔术URL?
我想用新配置重新启动一个elasticsearch节点。什么是正常关闭节点的最佳方式?如何停止/关闭elasticsearch节点?
是否正在终止关闭服务器的最佳方式,或者是否存在一些可用于关闭节点的魔术URL?
已更新的答案。
_shutdown
API已在elasticsearch 2.x中删除。
一些选项:
在你的终端(DEV模式基本上),只需键入 “CTRL-C”
如果你开始它作为一个守护进程(-d
)找到PID,并杀死过程:SIGTERM
将关闭Elasticsearch下来干净(kill -15 PID
)
如果作为服务运行,像service elasticsearch stop
运行的东西:
以前的答案。它现在已经从1.6弃用了。
是的。见admin cluster nodes shutdown documentation
基本上是:
# Shutdown local node
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
# Shutdown all nodes in the cluster
$ curl -XPOST 'http://localhost:9200/_shutdown'
元首插件Elasticsearch提供Elasticsearch管理一个伟大的基于Web的前端,包括关停节点。它也可以运行任何Elasticsearch命令。
以防万一你想找到实例的PID,并杀死进程,假设节点侦听端口9300(默认端口),你可以运行下面的命令:
kill -9 $(netstat -nlpt | grep 9300 | cut -d ' ' -f 58 | cut -d '/' -f 1)
您可能必须使用上述代码中的数字(例如58和1)
如果您只是想应用新的配置,则不需要关闭它。
$ sudo service elasticsearch restart
但是,如果你想关机也无妨:
$ sudo service elasticsearch stop
问题是关于停止服务,不重新启动它。 –
doenst需要关闭服务器以应用新的配置。它不是一个答案,它是他的问题的解决方案:) –
如果你不能找到什么进程正在运行的Windows机器上elasticsearch你可以尝试在控制台中运行:
netstat -a -n -o
查找端口elasticsearch正在运行,默认为9200
。最后一列是使用该端口的进程的PID。您可以使用控制台中的简单命令关闭它
taskkill /PID here_goes_PID /F
使用以下命令可知道已在运行的节点的pid。
卷曲-XGET“http://localhost:9200/_nodes/process”
我花了一个小时才找到了杀节点的方式,在终端窗口中使用此命令后,终于可以做到这一点。
这适用于我在OSX上。
pkill -f elasticsearch
内泊坞答案Elasticsearch:
只要停止泊坞窗容器。它似乎停止正常,因为它记录:
[INFO ][o.e.n.Node ] [elastic] stopping ...
停止服务,并杀死守护进程确实是正确的方法来关闭一个节点。但是,如果您想取下节点进行维护,则不建议直接执行此操作。事实上,如果你没有副本,你会丢失数据。
当您直接关闭某个节点时,Elasticsearch将等待1m(默认时间)重新联机。如果没有,那么它将开始将该节点的碎片分配给浪费大量IO的其他节点。
一个典型的方法是通过发出暂时禁用碎片分配:
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}
现在,当你取下来一个节点,ES不会试图从该节点分配碎片到其他节点,你可以执行你的维护活动,然后一旦节点已启动,您可以再次启用碎片分配:
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}
来源:https://www.elastic.co/guide/en/elasticsearch/reference/5.5/restart-upgrade.html
如果您没有所有索引的副本,那么执行此类活动将在某些索引上发生停机。在这种情况下,一个更清洁的方法是服用节点下来之前将所有碎片到其他节点迁移:
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
}
这将所有碎片摆脱10.0.0.1
到其他节点(需要一定的时间取决于数据)。一切完成后,您可以杀死节点,执行维护并重新联机。这是一个较慢的操作,如果您有副本,则不需要。
(相反_ip,_id的,_name使用通配符将工作得很好。)
的更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/5.5/allocation-filtering.html
其他答案解释了如何杀死一个进程。
因此,从elasticsearch 1.6(根据提供的链接)可以看出,shutdown API已被弃用。什么是推荐的关闭新方法? – Mike
我认为它已被弃用,因为您现在可以将其作为服务安装并运行服务停止elasticsearch。如果你只是为了测试而运行它,那么点击CTRL + C就完成了。 – dadoonet
“gracefull”=>您可以使用重定向API移动碎片https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cluster-reroute.html –