基本上我找不到解释将正在运行的Elasticsearch实例升级到当前版本的过程的文档或资源.
请在几个场景中帮助我:
如果我在单个服务器中运行Elasticsearch实例,如何升级实例而不丢失数据?
如果我在多个服务器中运行多个Elasticsearch实例,那么在升级Elasticsearch实例而不丢失数据的同时,如何保持运行运行?
如果有正确的程序或解释,这将极大地帮助我理解和工作.谢谢!
imo*_*tov 23
所有节点数据都存储在elasticsearch数据目录中.默认情况下,它是elasticsearch home中的data/cluster_name/nodes.因此,通常,只要保留数据目录并且新版本中的配置文件与旧版本兼容,新实例应具有与旧版本相同的数据.请注意,某些版本在发行说明中列出了特殊的附加要求.例如,从0.18升级到0.19需要发出集群中所有索引的完全刷新.
实现这一点真的没有好办法.节点使用不向后兼容的二进制协议进行通信.因此,如果新版本中的协议发生更改,则旧节点和新节点无法相互理解.有时可以在同一个集群中混合具有不同次要版本的节点并进行滚动升级.但是,据我所知,即使在次要版本中,也没有明确保证节点之间的兼容性,主要版本总是要求完全集群重启.如果无法选择完全集群重启期间的停机时间,DrTech的一项不错技术可能是一种解决方案.
Ale*_*leš 13
现在有很多关于ElasticSearch升级的信息比以前更多.
以下是升级ElasticSearch时的常用步骤:
备份数据:快照和还原
升级指南:升级ElasticSearch
主要思想是一次关闭一个ES集群实例,升级该实例节点上的ES版本,然后重新启动它以便它可以加入集群.
简而言之,以下是重要步骤:
禁用Shard重新分配
curl -XPUT localhost:9200/_cluster/settings -d'{"transient":{"cluster.routing.allocation.enable":"none"}}'
关闭实例:
curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
在主机上安装新的ElasticSearch版本并启动它.
启用分片重新分配:
curl -XPUT localhost:9200/_cluster/settings -d'{"transient":{"cluster.routing.allocation.enable":"all"}}'
监视集群从yellow
州到green
:
curl -X GET http:// localhost:9200/_cat/health?v //监视整个集群状态
curl -X GET http:// localhost:9200/_cat/nodes?v //验证新节点是否加入了集群
curl -X GET http:// localhost:9200/_cat/shards?v //查看正在启动,初始化和重新定位的分片
在排序方面,首先更新主节点,然后更新数据节点,然后更新负载平衡/客户端节点.
小智 6
值得一提的是,现在有关于进行此升级的文档,但它对搜索结果的排名并不高:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-upgrade.html
以及一个重大变化文件:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/breaking-changes.html
归档时间: |
|
查看次数: |
35267 次 |
最近记录: |