导读:使用过ealsticSearch的同仁都知道,其ealsticSearch具有高可靠的集群性能,但在生产环境中,当我们需要调整参数、加大jvm内存时都需要重node。大部分人认为直接重启node即可,其实不然,直接重启node会造成数据丢失、集群无法恢复、在生产环境中这是灾难时的事故,会造成服务中断!原因是直接重启node,集群的master节点不不及记录其状态、数据等信息!
下面是敝人在工程实贱中使用的规范升级操作,可避免上述情况的发生!
elasticsearch升级规范(必须严格按照以下步骤操作,不然数据可能丢失,影响搜索服务)
举例升级 以shop_a(节点name)举例
第一步:先暂停集群的shard自动均衡功能。
curl -XPUT 'http://127.0.0.1:9200/_cluster/settings' -d '{"transient" : {"cluster.routing.allocation.enable" : "none"}}'
第二步:shutdown你要升级的节点
curl -XPOST 'http://127.0.0.1:9200/_cluster/nodes/shop_a/_shutdown'
第三步:重启该节点,并确认该节点重新加入到了集群中。
第四步:重复2-3步,升级重启其它要升级的节点。
第五步:重新启动集群的shard均衡
curl -XPUT 'http://127.0.0.1:9200/_cluster/settings' -d '{"transient" : {"cluster.routing.allocation.enable" : "all"}}'
如果集群只有一台,第五步不用执行,因为集群默认启动shard均衡
转载请注明出处!交流QQ群:659201069