有时有需要从ES集群中去除多个节点的需求,比如迁移一套ES集群到另外一套ES集群,这时可以先将新的ES节点加入到现有集群里,再将老ES节点下线。

一 实验环境

 ​​​​​二 实验步骤

2.1 集群扩容-添加新节点

可参考ES集群扩容-新增一个节点_雅冰石的专栏-CSDN博客

该文章以新增一个节点node-4为例,请参考该文章为ES集群新增三个节点,令外两个节点名称分别是node-5及node-6.

2.2 集群缩容-去除老节点

删除符合主节点条件的节点时,不要同时删除太多的节点,这一点很重要。例如,如果当前有七个符合主节点条件的节点,并且您希望将其减少到三个,则不可能一次停止四个节点:这样做将只剩下三个节点,这不到投票配置的一半,这意味着集群无法采取任何进一步的操作。

要删除其中一个节点,必须首先通知Elasticsearch该节点不应属于投票配置的一部分。然后,您可以使被排除的节点脱机,不会影响集群的可用性。

只有在短时间内从集群中移除至少一半符合主资格的节点时,才需要投票排除。删除不符合主节点条件的节点时不需要它们,删除不到一半符合主节点条件的节点时也不需要它们。

只要集群中至少有三个主合格节点,作为一般规则,最好一次删除一个节点,让集群有足够的时间自动调整投票配置,并使容错级别适应新的节点集。

2.2.1 移出第一个节点

2.2.1.1 从投票选举中排除要下线的节点

#这里排除掉node-1为例

curl -u elastic -X POST "192.168.144.246:10412/_cluster/voting_config_exclusions/node-1"

192.168.144.246:10412这里写集群中任意节点的IP和端口即可。

/*

我看官网上写的语法是POST /_cluster/voting_config_exclusions?node_names=node_name,可是我试了不行,也许是版本不同的原因吧。

*/

#验证是否排除成功

curl -X GET "192.168.144.246:10412/_cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions&pretty" -u elastic

Enter host password for user 'elastic':{"metadata" : {"cluster_coordination" : {"voting_config_exclusions" : [{"node_id" : "nSXSmSBAS8qYRt3au_G1lg","node_name" : "node-1"}]}}}

若能在输出中看到要排除的node,说明排除成功

2.2.1.2 停止要下线的节点

systemctl stop elasticsearch

#取消开机自启动

systemctl disable elasticsearch

2.2.1.3 检查集群状态

下线一个节点,会触发分片重新分配,这期间集群的状态是yellow,需要等待一下,确定集群状态是green。

curl -u elastic http://192.168.144.246:10412/_cluster/health/

[root@Centos7-Mode-V8 ~]# curl -u elastic http://192.168.144.246:10412/_cluster/health/

Enter host password for user 'elastic':

{"cluster_name":"vcom","status":"green","timed_out":false,"number_of_nodes":5,"number_of_data_nodes":3,"active_primary_shards":5,"active_shards":10,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":100.0}[root@Centos7-Mode-V8 ~]#

可以看到集群状态变为green,且节点数量变少了。

2.2.2 移出第二个节点

可参考2.2.1‘移出第一个节点’步骤,需要将将node1-改为node2。

2.2.2 移出第三个节点

可参考2.2.1‘移出第一个节点’步骤,需要将将node1-改为node3。

2.2.4 在维护完成后应清除排除项

curl -X DELETE "192.168.144.246:10412/_cluster/voting_config_exclusions?pretty" -u elastic

2.2.5 卸载下线的ES

为了防止ES节点启动后,自动加入到ES集群(如果配置了iscovery.zen.ping.unicast.hosts,会自动发现集群),需要把该ES节点卸载。

2.3 检查业务

测试业务,确保仍能正常运行

--本篇文章参考了

https://www.elastic.co/guide/en/elasticsearch/reference/7.16/add-elasticsearch-nodes.html

ES 7.6.2集群迁移(从一套ES集群迁移数据到另一套集群)相关推荐

  1. 迁移到其他机器_有赞大数据离线集群迁移实战

    ‍‍ 点击关注"有赞coder" 获取更多技术干货哦- 作者:郭理想 & 任海潮部门:数据中台 一.背景 有赞是一家商家服务公司,向商家提供强大的基于社交网络的,全渠道经营 ...

  2. hbase集群 数据写入_HBase神器 | BDSHBase集群之间数据迁移同步的利器

    BDS定位 BDS针对开源HBase目前存在的同步迁移痛点,自主研发的一套数据迁移的平台,用于HBase集群的无缝迁移.主备容灾.异地多活.在线离线业务分离.HBase数据归档.对接RDS实时增量数据 ...

  3. 记一次在K8s集群搭建的MySQL主从无法正常启动之数据迁移恢复实践

    本章目录:记一次在K8s集群搭建的MySQL主从无法正常启动之数据迁移恢复实践 描述:在K8s集群中里利用bitnami提供的mysql:5.7.32-debian-10-r61镜像并利用helm进行 ...

  4. mysql数据迁移到es_实战ES跨版本数据迁移

    描述:由于某种原因,我们现有机房需要关停,并且没有新的机房环境,只能使用阿里云Elasticsearch,而我们之前的ES版本比较老,阿里云Elasticsearch版本目前为6.3.2,版本跨度比较 ...

  5. MySQL无中心化集群_MySQL Plus 如何做到无中心化、数据强一致性、秒级切换?

    数据库服务于企业的核心交易业务和实时交互应用,承载着企业的核心数据,因此企业对于数据库的数据一致性和高可用性有强烈的需求. 本次内容为青云QingCloud 数据库工程师蒙哲在 3306Pai 201 ...

  6. 好程序员大数据技术分享:Zookeeper集群管理与选举

    为什么80%的码农都做不了架构师?>>>    大数据技术的学习,逐渐成为很多程序员的必修课,因为趋势也是因为自己的职业生涯.在各个技术社区分享交流成为很多人学习的方式,今天很荣幸找 ...

  7. 好程序员大数据笔记之:Hadoop集群搭建

    好程序员大数据笔记之:Hadoop集群搭建在学习大数据的过程中,我们接触了很多关于Hadoop的理论和操作性的知识点,尤其在近期学习的Hadoop集群的搭建问题上,小细节,小难点拼频频出现,所以,今天 ...

  8. 大数据集群启停shell脚本:hadoop(hdfs、yarn)、hbase集群启停

    #Hadoop集群启动/停止脚本#!/bin/bash if [ $3 lt 1 ] thenecho "No Args Input!"exit; fi case $1 in &q ...

  9. 07/08_flink shell,基本原理及应用场景、特点、架构图、集群解剖、JobManager、TaskManagers、tasks和操作链、Session/job集群、组件介绍等、应用场景

    1.7.Flink scala shell代码调试 1.7.1.Flink scala shell代码调试语法 1.8.Flink基本原理及应用场景 1.8.1.Flink特点 1.8.2.Flink ...

最新文章

  1. 页面文件太小无法完成操作_手机上也能轻松完成文件压缩操作,无需软件,可惜知道的人才10%...
  2. 数据集整理(ing)
  3. oracle如果为空替换为0,oracle 如何把0转为null
  4. The Code Commandments: Best Practices for OCCoding
  5. 取代java_为什么C++没有被java取代
  6. java输出a-z_有1-26个数字和a-z字母,用Java多线程实现先输出2和数字再输出2个字
  7. 解决: Vue 项目本地运行 run 与服务器上 build 样式不一致,build 后样式不生效
  8. 【AI视野·今日NLP 自然语言处理论文速览 第二十六期】Wed, 3 Nov 2021
  9. java 多线程学习
  10. 更新证书错误Code Sign error: Provisioning profile ‘XXXX'can't be found
  11. Eclipse自动生成返回值对象
  12. 八爪鱼网络爬虫工具——学习笔记整理
  13. idea加密解密C++实现
  14. 手游摇杆(二)八方向摇杆和移动范围限制
  15. python中常见的三种选择结构_在Python中,实现多分支选择结构的最佳方法是
  16. 数据结构之图(二)——邻接矩阵
  17. 龙光集团布局广州,以龙光·天皓为业主拾起温度
  18. SQL语句 SQL Server(代码添加约束:主键约束,外键约束,默认值约束,check约束,规则约束)
  19. 高质量AI c++工程师课程~~强推,希望你少走弯路
  20. python爬虫-爬取社区论坛房产信息-01

热门文章

  1. 安装向导无法创建文件夹
  2. 你还不知道 BTree,B-Tree,B+Tree 的区别吗?
  3. 如何复制那些无法复制的网站
  4. 什么是MISRA?如何满足该行业标准?
  5. ORA-02396:超出最大空闲时间,请重新连接
  6. poi 启用保护后取消_关于POI锁定保护Excel表格后的操作
  7. 计算几何基础——【点积和叉积的用处】
  8. Python概述:C++程序员眼中的Python
  9. Python编程(第4版)pdf
  10. 励销云全流程智能销售解决方案,助力B2B企业高效增长