es7.6.2集群迁移(从一套es集群迁移数据到另一套集群)(代码片段)

雅冰石 雅冰石     2023-01-20     801

关键词:

有时有需要从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

elasticsearch数据迁移与集群容灾

参考技术A本文讨论如何跨集群迁移ES数据以及如何实现ES的同城跨机房容灾和异地容灾。在ES的生产实践中,往往会遇到以下问题:根据业务需求,存在以下场景:如果是第一种场景,数据迁移过程中可以停止写入,可以采用诸... 查看详情

es实战es集群节点迁移与缩容(代码片段)

ES集群节点迁移与缩容文章目录ES集群节点迁移与缩容master节点迁移场景一场景二场景三data节点迁移数据迁移操作1、查询集群原来的配置2、清空节点数据3、检查是否排空数据迁移原则缩容前置检查项master节点迁移场景一集群上... 查看详情

elasticsearch数据迁移

参考技术A将es数据从一个集群迁移到另外一个集群,使用elasticdump进行迁移,elasticdump地址:https://github.com/elasticsearch-dump/elasticsearch-dump迁移单个索引:参数说明:--input:源地址,可为ES集群URL、文件或stdin,可指定索引,格式为:pr... 查看详情

将数据从单节点 cassandra 集群迁移到另一个单节点 cassandra 集群

】将数据从单节点cassandra集群迁移到另一个单节点cassandra集群【英文标题】:Migratingdatafromasinglenodecassandraclustertoanothersinglenodecassandracluster【发布时间】:2019-10-1605:14:11【问题描述】:我有一个单节点Cassandra集群,上面有大约44GB... 查看详情

logstash迁移es数据(代码片段)

任务:从es集群a,b,c。。。把数据迁移到新es集群d,e,f  迁移数据只是复制需要额外3台服务器,分别部署新es集群d,e,f 和 单点logstash是迁移通道和kibana查询工具  (集群es复制到单点es,没试过,改天试一下)... 查看详情

elasticsearch数据迁移(代码片段)

现需要将某集群下一个索引下的所有数据迁移到另一个集群上,elasticsearch-dump,Elasticsearch-Exporter试了一下都不好使,只能老实的写代码来实现importosimportsysimportpyesimportdatetimeindex_list=[["alias-offer","offer"]]ES_URL="http://ip1:9200/"NEW_ES_UR 查看详情

如何将 DolphinDB 集群迁移到另一台机器上

】如何将DolphinDB集群迁移到另一台机器上【英文标题】:HowtomigrateDolphinDBclusterontoanothermachine【发布时间】:2019-11-2023:32:12【问题描述】:我们公司每天都在使用DolphinDB。随着时间的推移,我们的旧服务器上的数据太多了。因此... 查看详情

es实战es集群节点迁移与缩容(代码片段)

ES集群节点迁移与缩容文章目录ES集群节点迁移与缩容master节点迁移场景一场景二场景三data节点迁移数据迁移操作1、查询集群原来的配置2、清空节点数据3、检查是否排空数据迁移原则缩容前置检查项master节点迁移场景一集群上... 查看详情

elasticsearch集群数据索引迁移自动化脚本(代码片段)

  日常维护elasticsearch集群会出现新老集群数据迁移,这里使用的是snapshotapi是Elasticsearch用于对数据进行备份和恢复的一组api接口,可以通过snapshotapi进行跨集群的数据迁移,原理就是从源ES集群创建数据快照,然后在目标E... 查看详情

es索引迁移snapshot-迁移部分索引

Snapshot-迁移部分索引源集群192.168.40.180192.168.40.181192.168.40.182目标集群192.168.40.61192.168.40.62192.168.40.63生产需要额外,挂载硬盘SnapshotAPI是Elasticsearch用于对数据进行备份和恢复的一组API接口,可以通过SnapshotAPI进行跨集群的数据迁移... 查看详情

如何在集群之间迁移数据?

】如何在集群之间迁移数据?【英文标题】:Howtomigratedatabetweenclusters?【发布时间】:2017-02-0116:36:22【问题描述】:我必须将Hive表复制到另一个集群,以保持表的架构和层次结构,所以我的问题是:为了获得准确的表(和数据库... 查看详情

使用elasticdump迁移数据到新es集群(代码片段)

参考文档https://blog.csdn.net/u012731379/article/details/79856113https://blog.csdn.net/u010466329/article/details/79209236https://blog.csdn.net/laoyang360/article/details/65449407迁移方法通过logstash的input和output配置迁移(配置灵活适用于长期数据同步等)通过迁移... 查看详情

es版本升级并迁移数据(代码片段)

ES6.2.3(3节点)460G数据迁移到ES7.4.1(5节点)目标现在有一个ES集群(3节点,3个节点既是master也是data),存储的数据约460G。现在需要升级ES版本为7.4.1,新集群采用12个节点(4个master,8个data节点)演练... 查看详情

es版本升级并迁移数据(代码片段)

ES6.2.3(3节点)460G数据迁移到ES7.4.1(5节点)目标现在有一个ES集群(3节点,3个节点既是master也是data),存储的数据约460G。现在需要升级ES版本为7.4.1,新集群采用12个节点(4个master,8个data节点)演练... 查看详情

es集群分片unassigned

参考技术A由于启动的问题导致了集群状态为yellow出现分片UNASSIGNED(应该是所谓的出现了脑裂)关闭主节点后,重新选择了之前的主节点之后,数据没这么乱,稍微好点部分分片一直处于INITIALIZING,并且分片不均衡,节点1上之前有... 查看详情

openstack快照迁移实例

...像标识openstackimagelist3、下载快照,并scp到另一套openstack集群管理节点openstackimagesave--fileherlly.raw6beb0acf-812a-484a-9ddd-ec9b83a8bc904、快照导入新集群openstackimagecreatecacti--container-formatbare--disk-formatqcow2--file/path/herlly.raw5、使用导入的快照... 查看详情

zk集群数据迁移和恢复

参考技术Azk集群数据迁移和恢复一、zk数据迁移,有如下两种方案:1、利用zk集群超过半数仍然可用的特性,比如集群中有5个节点,可以将其中1~2个节点割裂出去,再添加1个新的节点,组成新的集群,以此实现数据迁移;2、直... 查看详情

redis版本升级数据迁移使用redis-shake

RedisShake是一款开源的Redis迁移工具,支持Cluster集群的在线迁移与离线迁移(备份文件导入)。DCSCluster集群与RedisCluster集群设计一致,数据可平滑迁移。本文以Linux系统环境为例,介绍如何使用Redis-Shake工具进行Cluster集群数据迁... 查看详情