赞
踩
1、检查弃用日志以查看您是否正在使用任何弃用的功能并相应地更新您的代码。
2、查看重大更改并对版本 7.17.5 的代码和配置进行任何必要的更改。
3、如果您使用任何插件,请确保每个插件都有一个与 Elasticsearch 版本 7.17.5 兼容的版本。
4、在升级生产集群之前,在隔离环境中测试升级。
5、通过拍摄快照备份您的数据!(或对当前集群所有节点进行数据和安装包进行全量备份)
升级集群
*禁用自动分片功能*(若在升级过程中不考虑IO性能瓶颈,可以忽略)
关闭一个数据节点时,分配过程会等待
index.unassigned.node_left.delayed_timeout(默认为一分钟),然后才开始将该节点上的分片复制到集群中的其他节点,这可能涉及大量 I/O。由于节点很快将重新启动,因此此 I/O 是不必要的。您可以通过在关闭数据节点之前禁用副本分配来避免争分夺秒 :
PUT _cluster/settings{ “persistent”: { “cluster.routing.allocation.enable”: “primaries” }}
*停止不必要的索引并执行同步刷新。*(可选的)
POST _flush/synced
*暂停要升级节点与集群间其他节点进行数据通讯*,避免有新的数据产生(可选的)
POST _ml/set_upgrade_mode?enabled=true
关闭当前节点,在当前服务器中升级该节点ElasticSearch版本,其中ElasticSeaarch参考原节点进行配置。
*升级ElasticSearch使用插件*
使用elasticsearch-plugin脚本安装每个已安装的 Elasticsearch 插件的升级版本。升级节点时必须升级所有插件。
语法:$ES_HOME bin/elasticsearch-plugin install XXXX
*启动升级的节点*
语法:$ES_HOME bin/nohup ./elasticsearch &
*重新启用分片分配*(若为禁用自动分片功能,无需执行此步骤)
PUT _cluster/settings{ “persistent”: { “cluster.routing.allocation.enable”: null }}
*等待节点恢复*
GET _cat/health?v=true
注意:
在滚动升级期间,分配给运行新版本的节点的主分片不能将其副本分配给使用旧版本的节点。新版本可能具有旧版本无法理解的不同数据格式。
如果无法将副本分片分配给另一个节点(集群中只有一个升级节点),则副本分片保持未分配状态,状态保持不变yellow。
在这种情况下,一旦没有初始化或重新定位分片,您就可以继续(检查init和relo列)。一但另一个节点升级,就可以分配副本并且状态将更改为green。
*重复任务*
当节点恢复并且集群稳定后,对每个需要更新的节点重复这些步骤。
*重新启动**节点与集群间其他节点进行数据通讯*(若已经暂停该功能,若未暂停,忽略此操作)
POST _ml/set_upgrade_mode?enabled=false
*注意*
在滚动升级期间,集群继续正常运行。但是,在升级集群中的所有节点之前,任何新功能都会被禁用或以向后兼容的模式运行。一旦升级完成并且所有节点都在运行新版本,新功能就会开始运行。一但发生这种情况,就无法返回以向后兼容模式运行。运行先前版本的节点将不允许加入完全更新的集群。
如果升级过程中出现网络故障,将所有剩余的旧节点与集群隔离开来,您必须使旧节点脱机并升级它们以使其能够加入集群。
如果您在升级过程中同时停止一半或更多符合主节点条件的节点,则集群将不可用,这意味着升级不再是滚动升级。如果发生这种情况,您应该升级并重新启动所有已停止的符合主节点资格的节点,以允许集群再次形成,就像执行全集群重启升级一样。可能还需要升级所有剩余的旧节点,然后它们才能在重新形成后加入集群。
1.2.2 snapshot快照
首先创建快照仓库
注意:对于快照仓库需要每个节点都对其有访问权限,所以在实际使用中需要使用nfs挂载。
a)使用Psotman方式创建仓库
Postman:PUT http://192.168.115.130:9200/_snapshot/my_repository{ “type”: “fs”, “settings”: { “location”: “/home/elastic/my_repo_floder”, “compress”: *true*, “max_restore_bytes_per_sec”: “50mb”, “max_snapshot_bytes_per_sec”: “50mb” }}
说明:my_repository为镜像仓库名称
Location 为镜像路径
b)使用Curl方式创建仓库
curl -XPUT ‘http://192.168.115.130:9200/_snapshot/my_repository’ -H ‘content-Type:application/json’ -d ‘{ “type”: “fs”, “settings”: { “location”: “/home/elastic/my_repo_floder”, “compress”: *true*, “max_restore_bytes_per_sec”: “50mb”, “max_snapshot_bytes_per_sec”: “50mb” }}’ |
---|
wps20.jpg |
备份索引(全量)
a)使用Psotman方式备份
Postman:PUT http://192.168.115.130:9200/_snapshot/my_repository/snapshot_1?wait_for_completion=true |
---|
wps21.jpg |
b)使用Curl方式备份
curl -XPUT ‘http://192.168.115.130:9200/_snapshot/my_repository/snapshot_1?wait_for_completion=true’ |
---|
wps22.jpg |
日志显示 completed with state [SUCCESS]
c)查看备份对应索引信息
Postman:GET http://192.168.115.130:9200/_snapshot/my_hdfs_repository/snapshot_1#snapshot_1是备份文件名称 |
---|
wps24.jpg |
1.2.3 .elasticdump方式
Elasticdump工具是依赖于npm进行安装的,可以参考如下地址进行安装:
https://www.cnblogs.com/itniwota/p/16011503.html
导出分词器 [root@localhost ~]# elasticdump --input=http://ip:9200/my_index --output=http://127.0.0.1:9200/my_index --type=analyzer 导出映射mapping ![img](https://img-blog.csdnimg.cn/img_convert/2aee650011fc5807c5ffba6717bb9fe7.png) ![img](https://img-blog.csdnimg.cn/img_convert/4b7154be1a354676297ff5cf4b679e69.png) **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** 遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。