Elasticsearch使用快照进行跨集群索引迁移

news/2024/10/4 18:55:32/文章来源:https://blog.csdn.net/qq_43303221/article/details/141964030

1、创建NFS共享存储目录服务端

  • 安装 NFS服务
    yum install -y nfs-utils

  • 创建目录并授权

mkdir -p /data/es-backup
chmod 666 /data/es-backup
chown nobody /data/es-backup
  • 导出文件系统
vim /etc/exports
/data08/esnfs_data *(rw,sync,insecure,no_subtree_check,no_root_squash)

/data/nfs (rw,sync,insecure,no_subtree_check,no_root_squash)说明:
1、/data/nfs: nfs server 目录
2、
: 表示所有的服务器都可以挂载该nfs,当然也可以指定ip地址/ip地址段
3、rw: 读写权限
4、sync:同步写入,即数据写入服务器后再返回响应,保证数据的可靠性和一致性
5、insecure: 表示不进行端口校验,允许客户端使用非保留端口进行连接
6、no_subtree_check: 禁止子树检查
7、no_root_squash: 表示禁用 root 用户映射机制,即来自客户端的 root 用户被映射为匿名用户而没有特权

  • 启动服务
systemctl start nfs-server
systemctl enable nfs-server
  • 查看验证
#exportfs -rv
exporting *:/data/es-backup
  • nfs服务端配置
yum install -y nfs-utilsmkdir /data08/esnfs_data
chmod 666  /data08/esnfs_data
chown nobody  /data08/esnfs_data

2、ES节点挂载共享目录并修改参数重启

  • 安装软件包
    yum install -y nfs-utils

  • 测试挂载

mkdir /esdata_backup[root@secpaas108 ~]# showmount -e 10.45.151.130
Export list for 10.45.151.130:
/data08/esnfs_data *
  • mount
mount -t nfs 10.45.151.130:/data08/esnfs_data /esdata_backup
chown elastic:elastic /esdata_backup
  • 修改集群的配置,每个节点都需要修改:
vim ./elasticsearch/elasticsearch.yml
path.repo: ["/esdata_backup"]
  • 设置开机自动挂载
vim /etc/fstab
10.45.151.130:/data/es-backup /esdata_backup nfs defaults 0 0
  • 修改所属组
    chown elasticsearch:elasticsearch /mnt/es-backup

3、老集群创建快照

    1. 创建一个快照库
curl -v -XPUT 'http://10.45.151.108:9200/_snapshot/test-repo' -H "Content-Type: application/json" -d '
> {
>     "type": "fs",
>     "settings": {
>         "location": "/esdata_backup"
>     }
> }'

其中test-repo 是快照库的名字,/esdata_backup是我们上面挂载的目录

结果输出为:

* About to connect() to 10.45.151.108 port 9200 (#0)
*   Trying 10.45.151.108...
* Connected to 10.45.151.108 (10.45.151.108) port 9200 (#0)
> PUT /_snapshot/test-repo HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 10.45.151.108:9200
> Accept: */*
> Content-Type: application/json
> Content-Length: 83
>
* upload completely sent off: 83 out of 83 bytes
< HTTP/1.1 200 OK
< content-type: application/json; charset=UTF-8
< content-length: 21
<
* Connection #0 to host 10.45.151.108 left intact
{"acknowledged":true}
    1. 查看快照库
      查看刚刚创建的快照库
curl -X GET "http://10.45.151.108:9200/_snapshot?pretty"
{"test-repo" : {"type" : "fs","settings" : {"location" : "/esdata_backup"}}
}
    1. 在快照库中创建一个索引的快照

计划将此索引迁移:

[elastic@secpaas108 ~]$  curl "10.45.151.108:9200/_cat/indices?v"|grep aman_gwtest0815
1green  open   gwtest0815                    UMdP7fHARlSoXvaujTKgKg  48   1   91560000            0     26.6gb         13.3gb

创建快照命令:

curl -v -XPUT 'http://10.45.151.108:9200/_snapshot/test-repo/snapshot-gwtest0815?wait_for_completion=true' -H "Content-Type: application/json" -d '
{
"indices": "gwtest0815"
}'

其中:
test-repo: 上面创建的快照库名字
snapshot-gwtest0815:索引快照的名字
wait_for_completion=true: 是否等待命令成功再返回
indices: 索引名称

注意:index的状态必须是非red

输出如下:

* About to connect() to 10.45.151.108 port 9200 (#0)
*   Trying 10.45.151.108...
* Connected to 10.45.151.108 (10.45.151.108) port 9200 (#0)
> PUT /_snapshot/test-repo/snapshot-gwtest0815?wait_for_completion=true HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 10.45.151.108:9200
> Accept: */*
> Content-Type: application/json
> Content-Length: 33
>
* upload completely sent off: 33 out of 33 bytes
< HTTP/1.1 200 OK
< content-type: application/json; charset=UTF-8
< content-length: 440
<
* Connection #0 to host 10.45.151.108 left intact
{"snapshot":{"snapshot":"snapshot-gwtest0815","uuid":"Q8PKCQeMQlqloy9dcj_ccA","version_id":6082399,"version":"6.8.23","indices":["gwtest0815"],"include_global_state":true,"stat      e":"SUCCESS","start_time":"2024-08-15T08:27:25.842Z","start_time_in_millis":1723710445842,"end_time":"2024-08-15T08:28:51.155Z","end_time_in_millis":1723710531155,"duration_in_millis":85

3、在新集群恢复快照

  • 1)创建一个与老集群相同名字的快照库:
curl -v -XPUT 'http://10.45.185.80:9200/_snapshot/test-repo' -H "Content-Type: application/json" -d '
{"type": "fs","settings": {"location": "/esdata_backup"}
}'

注意:每次老集群创建快照以后,如果冷备集群已经有对应的快照库,就无法识别热备新创建的快照,需要先把快照库删除,重新创建一下,才能识别
附删除快照库命令:删除一个快照库:curl -XDELETE 'http://10.45.151.108:9200/_snapshot/test-repo'

命令输出如下

* About to connect() to 10.45.185.80 port 9200 (#0)
*   Trying 10.45.185.80...
* Connected to 10.45.185.80 (10.45.185.80) port 9200 (#0)
> PUT /_snapshot/test-repo HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 10.45.185.80:9200
> Accept: */*
> Content-Type: application/json
> Content-Length: 83
>
* upload completely sent off: 83 out of 83 bytes
< HTTP/1.1 200 OK
< X-elastic-product: Elasticsearch
< Warning: 299 Elasticsearch-7.17.6-f65e9d338dc1d07b642e14a27f338990148ee5b6 "Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html to enable security."
< content-type: application/json; charset=UTF-8
< content-length: 21
<
* Connection #0 to host 10.45.185.80 left intact
{"acknowledged":true}
    1. 查看已创建的快照
curl -X GET "http://10.45.185.80:9200/_snapshot/test-repo/snapshot-gwtest0815?pretty"

可以查看到老集群创建的快照的基本信息

{"snapshots" : [{"snapshot" : "snapshot-gwtest0815","uuid" : "Q8PKCQeMQlqloy9dcj_ccA","repository" : "test-repo","version_id" : 6082399,"version" : "6.8.23","indices" : ["aman_gwtest0815"],"data_streams" : [ ],"include_global_state" : true,"state" : "SUCCESS","start_time" : "2024-08-15T08:27:25.842Z","start_time_in_millis" : 1723710445842,"end_time" : "2024-08-15T08:28:51.155Z","end_time_in_millis" : 1723710531155,"duration_in_millis" : 85313,"failures" : [ ],"shards" : {"total" : 48,"failed" : 0,"successful" : 48},"feature_states" : [ ]}],"total" : 1,"remaining" : 0
}
    1. 利用快照恢复索引数据至老集群
curl -XPOST "http://10.45.185.80:9200/_snapshot/test-repo/snapshot-gwtest0815/_restore"
{"accepted":true}
    1. 等待数据恢复完成

查看ES 索引状态:

curl -X GET 'http://10.45.185.80:9200/_cat/indices?v=true&pretty'
health status index             uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   gwtest0815   gkXrNy08QPijMvGwRAeZTQ  48   1

此时索引已经创建,但是shard尚未恢复完成,可以用health命令查看进度

curl -X GET 'http://10.45.185.80:9200/_cat/health?v=true&pretty'
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1723712508 09:01:48  elasticsearch yellow         12         9    198 196    0   19       43             0                  -                 76.2%curl -X GET 'http://10.45.185.80:9200/_cat/health?v=true&pretty'
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1723712656 09:04:16  elasticsearch green          12         9    260 210    0    0        0             0                  -                100.0%

恢复完成以后,ES 索引状态正常

[elastic@gwtest80 ~]$  curl -X GET 'http://10.45.185.80:9200/_cat/indices?v=true&pretty'
green  open   gwtest0815   gkXrNy08QPijMvGwRAeZTQ  48   1   91560000            0     26.6gb         13.3gb

至此我们就完成了ES索引跨集群迁移

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ldbm.cn/p/440207.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程替换篇

文章目录 目录 前言 1.进程替换概念 2.进程替换的原理 3.进程替换的接口 4.接口功能验证 ①execl接口演示 ②execlp接口演示 ③execle接口演示 ④execv接口验证 5.尝试写一个自己的shell【了解】 前言 你一定见过类似于这样的“黑框框”&#xff0c;这个“黑框框”其实就是…

算法入门-深度优先搜索3

第六部分&#xff1a;深度优先搜索 112.路径总和&#xff08;简单&#xff09; 题目&#xff1a;给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果…

Self Refine技术测评:利用Self Refine提高LLM的生成质量

1. 背景与挑战 在当今人工智能蓬勃发展的时代&#xff0c;大型语言模型&#xff08;Large Language Models&#xff0c;简称 LLMs&#xff09;已成为众多企业不可或缺的核心技术。从智能客服到内容创作&#xff0c;LLMs 在各个领域都展现出了惊人的能力。然而&#xff0c;随着…

电机驱动及编码器测速(基于STM32F103C8T6HAL库)

硬件&#xff1a;STM32F103C8T6、电机驱动模块tb6612、25GA370带编码器测速盘直流减速电机。 1.电机驱动 1.1 电机驱动模块tb6612 &#xff08;1&#xff09;电机驱动模块tb6612简介 电机驱动需要使用电机驱动模块&#xff0c;电机驱动模块把3.3V的电机信号转换成12V的电机的…

【MySQL00】【 杂七杂八】

文章目录 一、前言二、MySQL 文件1. 参数文件2. 日志文件3. 套接字文件4. pid 文件5. 表结构定义文件6. InnoDB 存储引擎文件 二、BTree 索引排序三、InnoDB 关键特性1. 插入缓冲1.1 Insert Buffer 和 Change Buffer1.1 缓冲合并 2. 两次写2. 自适应哈希索引3. 异步IO4. 刷新邻…

FuTalk设计周刊-Vol.073

#AI漫谈 热点捕手 1.Midjourney 样式分享网站 群里设计师创建的 Midjourney 风格网站&#xff0c;用来收集高质量 Sref Codes&#xff0c;展示示例图并且展示风格关键词&#xff0c;使用场景&#xff0c;以及示例提示词&#xff0c;作者称会持续更新 链接https://aiartsecre…

欧拉下搭建第三方软件仓库—docker

1.创建新的文件内容 切换目录到etc底下的yum.repos.d目录&#xff0c;创建docker-ce.repo文件 [rootlocalhost yum.repos.d]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vim docker-ce.repo 编辑文件,使用阿里源镜像源&#xff0c;镜像源在编辑中需要单独复制 h…

【C语言必学知识点七】什么?还有人不知道什么是柔性数组?还不速来!!!

动态内存管理——详细解读柔性数组 导读一、什么是柔性数组二、柔性数组的特点三、柔性数组的使用四、柔性数组的优势结语 导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 在上一篇内容中我们介绍了C/C程序中的内存分区&#xff0c;在C/C…

医疗机构关于DIP/DRG信息化建设

推进DIP/DRG支付方式改革是一项系统性工程&#xff0c;牵一发而动全身。作为河北省DIP试点医院&#xff0c;河北医科大学第二医院将信息化与创新性管理理念融合&#xff0c;用好支付工具做好精细化管理&#xff0c;积极应对改革。 ■ 改革背景 国家医疗保障局制定的《DRG/DIP支…

【北京迅为】《STM32MP157开发板使用手册》- 第十二章 编译Linux内核

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

Spring Boot项目中集成JWT进行身份验证

什么是JWT? JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络应用环境中安全地传递信息。它主要用于在客户端和服务器之间传递经过签名的 JSON 数据&#xff0c;以确保数据的完整性和真实性。 1.JWT 的结构…

Excel--复制粘贴时怎么跳过隐藏的行和列

方法一 比如如何跳过下面的行复制其他 首先将黄色的背景行按CTRL0隐藏起来 打开定位条件 选择可见单元格&#xff0c;点击确定 然后复制表格粘贴即可 方法二 首先将不需要的行和列隐藏起来&#xff0c;按Alt&#xff1b;锁定可见单元格。 复制粘贴即可&#xff0c;这样粘贴的…

数控走心机几个轴

数控走心机作为一种高精度、高效率的机床&#xff0c;其轴数配置是多样化的&#xff0c;这主要取决于机床需要实现的工艺和制造要求。一般来说&#xff0c;走心机可以有多种轴数配置&#xff0c;包括但不限于三轴、四轴、五轴和六轴等。 三轴走心机&#xff1a;这种走心机主要控…

数学建模常见模型(下)

目录 神经网络法详细介绍 1. 引言 2. 神经网络的基本概念 2.1 神经元 2.2 层次结构 2.3 激活函数 3. 神经网络的工作原理 3.1 前向传播 3.2 反向传播 4. 神经网络的类型 4.1 前馈神经网络&#xff08;Feedforward Neural Networks, FNN&#xff09; 4.2 卷积神经网…

ArcGIS小技巧:图斑变化分析

在做规划的过程中&#xff0c;经常会有这么个需求&#xff0c;用地方案确定后&#xff0c;需求找出规划用地和三调现状用地之间具体有哪些变化。 一方面可以用作具体规划内容的分析&#xff0c;另一方面也可以避免因为误操作而导致的错误图斑的出现。 以下图为例&#xff0c;…

D 咖智能饮品机器人:科技与美味共舞,奏响饮品新乐章

在科技飞速发展的时代浪潮中&#xff0c;D 咖智能饮品机器人如一颗璀璨的新星闪耀登场&#xff0c;以其独特的魅力将科技与美味完美融合&#xff0c;奏响了饮品世界的新乐章。 当你第一次邂逅 D 咖智能饮品机器人&#xff0c;便会被它那充满未来感的外观所吸引&#xff0c;锃亮…

民生水暖工程背后的科技力量引领工程智能化转型

物联网技术的广泛应用&#xff0c;使得物理设备能够实时传输运行状态数据至云端&#xff0c;实现了设备的全面感知与互联互通。每一台机器、每一个传感器都成为数据的源泉&#xff0c;为远程监控提供了坚实的基础。而大数据分析技术的应用&#xff0c;则让这些海量数据得以被高…

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点&#xff1a; 1.确保子表中的某个字段&#xff08;外键&#xff09;只能引用父表中的有效记录 2.主表中的列被删除时&#xff0c;子表中的关联列也会被删除 3.主表中的列更新时&#xff0c;子表中的关联…

大数据决策分析平台建设方案(可编辑的56页PPT)

引言&#xff1a;在当今信息爆炸的时代&#xff0c;大数据已成为企业决策制定、业务优化与市场洞察的重要驱动力。为了充分挖掘大数据的潜在价值&#xff0c;提升决策效率与精准度&#xff0c;构建一套高效、灵活、可扩展的大数据决策分析平台显得尤为重要。通过大数据分析平台…

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点&#xff1a; 鼠标左键双击&#xff0c;设定红色的起点。左键双击设定起点&#xff0c;用红色标记。 设定终点&#xff1a; 鼠标右键双击&#xf…