ES:在线迁移集群索引,数据不丢失
一、背景
生产环境由于某些原因需要跨机房迁移ES集群,或者同机房原有集群中所有节点全部更换,期间ES索引要求完整,客户端请求中断不超过五分钟。 二、应用场景
1、同机房不同集群之间数据迁移;
2、跨机房不同集群之间数据迁移。 三、迁移方案
A机房ES集群 --> B机房ES集群
1、迁移任务:假设A机房ES集群(3master、3data共三台物理机)迁移到B机房ES集群(3master、3data共三台物理机);
2、迁移思路:通过集群扩容的方式加入B机房ES节点,通过缩容的方式去掉A机房节点,始终保持一个集群原则,分片在集群内部进行迁移,集群及索引配置不更改,对业务友好;
3、对业务影响: 迁移期间有两次集群master重选举环节,选举期间ES集群对外不可用,每次选举时长不超过2分钟;
4、迁移步骤:
1.在A机房ES集群扩容3master、3data节点,新节点使用首鸣的物理机,观察新增的3master、3data全部加入到A机房ES集群,此时B机房3master、3data和A机房3master、3data共同组成1个6master、6data节点的跨机房集群;
discovery.zen.ping.unicast.hosts: ["bjsm_master1:tcp_port","bjsm_master2:tcp_port","bjsm_master3:tcp_port","bjdz_master1:tcp_port","bjdz_master2:tcp_port","bjdz_master3:tcp_port" ] 配置首鸣、大族共6个master节点 2.在集群内部迁移A机房data节点上的分片到B机房的data节点上,此时集群中所有数据分片都在B机房的data节点上;
执行RESTful API迁移分片: curl -H 'Content-Type:application/json' -XPUT 'http://bjsm_master1:http_port/_cluster/settings' -d'{"transient" : {"cluster.routing.allocation.exclude._ip" : "IP"}}' 3.更改ES客户端配置文件中“data.elasticsearch.cluster-nodes”,去掉A机房的节点配置,改成B机房的master节点(tcp端口),然后客户端实例灰度重启并生效配置; 4.下线A机房的3个data节点,再下线A机房的两个副master节点,最后下线A机房的主master节点,此时集群会进入master节点重新选举,且新的主master节点一定会在B机房的3个master节点中产生,此时集群会有短暂的不可访问(两分钟左右); 5.去掉B机房master、data节点配置文件中的大族节点配置,逐个重启data节点,再重启副master节点,最后重启主master节点(集群会有最长两分钟的不可访问时间)后全部生效,等待ES集群再次恢复;
discovery.zen.ping.unicast.hosts: ["bjsm_master1:tcp_port","bjsm_master2:tcp_port","bjsm_master3:tcp_port" ] 只留B机房的3个master节点 6.B机房的客户端访问均正常后,下线A机房的3个master、3个data节点,此时整个迁移任务完毕。
ES:在线迁移集群索引,数据不丢失的更多相关文章
- elasticsearch5.0集群大数据量迁移方法及注意事项
当es集群的数据量较小的情况下elasticdump这个工具比较方便,但是当数据量达到一定级别比如上百G的时候,elasticdump速度就很慢了,此时我们可以使用快照的方法进行备份 elasticd ...
- 实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原
文/朱季谦 目录 一.Elasticdump工具介绍 二.Elasticdump工具安装 三.Elasticdump工具使用 最近在开发当中做了一些涉及到Elasticsearch映射结构及数据导出导 ...
- Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统
前言 我们知道HDFS集群中,所有的文件都是存放在DN的数据块中的.那我们该怎么去查看数据块的相关属性的呢?这就是我今天分享的内容了 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 我 ...
- 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”
去哪儿 Hadoop 集群 Federation 数据拷贝优化 背景 去哪儿 Hadoop 集群随着去哪儿网的发展一直在优化改进,基本保证了业务数据存储量和计算量爆发式增长下的存储服务质量.然而,随着 ...
- 使用 Velero 跨云平台迁移集群资源到 TKE
概述 Velero 是一个非常强大的开源工具,可以安全地备份和还原,执行灾难恢复以及迁移Kubernetes群集资源和持久卷,可以在 TKE 平台上使用 Velero 备份.还原和迁移集群资源,关于如 ...
- Redis 切片集群的数据倾斜分析
Redis 中如何应对数据倾斜 什么是数据倾斜 数据量倾斜 bigkey导致倾斜 Slot分配不均衡导致倾斜 Hash Tag导致倾斜 数据访问倾斜 如何发现 Hot Key Hot Key 如何解决 ...
- 本地日志数据实时接入到hadoop集群的数据接入方案
1. 概述 本手册主要介绍了,一个将传统数据接入到Hadoop集群的数据接入方案和实施方法.供数据接入和集群运维人员参考. 1.1. 整体方案 Flume作为日志收集工具,监控一个文件目录或者一个文 ...
- 02使用java脚本向Pxc集群写入数据
使用java脚本向Pxc集群写入数据 批量写入pxc集群程序 导入mysql驱动包 # 批量插入数据的java脚本 package pxc_demo; import java.sql.Connecti ...
- Hadoop基础-HDFS集群中大数据开发常用的命令总结
Hadoop基础-HDFS集群中大数据开发常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本盘博客仅仅列出了我们在实际生成环境中常用的hdfs命令,如果想要了解更多, ...
随机推荐
- restful的简单使用
根据http的不同方法,访问不同路由的相同控制器下的不同方法可以实现restful的使用 分别对应 路由方式 get put delete post 对应操作 获取 更新 删除 添加 其中如果要在非l ...
- 给c盘瘦身
火狐浏览器缓存 C:\Users\lenovo\AppData\Local\Mozilla\Firefox\Profiles\5nk022sw.default\cache2\entries C:\U ...
- C#的静态方法和实例化方法的区别
C#的静态方法和实例化方法的区别 在大多数时候,我们写一个方法,会把方法区分为实例化方法和静态方法.而当被问到静态方法和实例化方法的区别的时候,我在写这篇文章的前10分钟,或许我会回答:"静 ...
- web前端——CSS详解
简介 CSS(Casading Style Sheet)是一组HTML元素外观的设置规则,用于控制web页面的表现形式,一般被翻译为"级联样式表"或"层叠样式表" ...
- Opencv笔记(十五)——图像金字塔
参考文献 目标 学习图像金字塔 学习函数cv2.pyrUp()和cv2.pyrDown() 原理 当我们需要将图像转换到另一个尺寸的时候, 有两种可能,一种是放大图像,另一种是缩小图像.尽管在Open ...
- spring 方法注入、方法替换
spring 提供了很多的注入方式,set注入.构造注入.p命名空间.c命名空间.字段注入等等,这些没啥可说的了. 方法注入 因为开发时我需要spring管理一个实例,但是这个实例并非单例,应该每一次 ...
- PAT甲级——1041 Be Unique
1041 Be Unique Being unique is so important to people on Mars that even their lottery is designed in ...
- yii执行流程简单介绍
1. 用户访问 http://www.example.com/index.php?r=post/show&id=1,Web 服务器执行入口脚本 index.php 来处理该请求. 2. 入口 ...
- EXCEL数据汇总-数据透视图
- 总结oracle18.3c-centos7-安装
官网下载对应名字rpm包 oracle-database-ee-18c-1.0-1.x86_64.rpm下载依赖包 除非已有依赖 否则会报缺少依赖错误 1 curl -o oracle-databas ...