实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原

news2024/11/22 18:38:28

文/朱季谦

  • 目录
    一、Elasticdump工具介绍
    二、Elasticdump工具安装
    三、Elasticdump工具使用

最近在开发当中做了一些涉及到Elasticsearch映射结构及数据导出导入的工作,怕以后会把这过程忘记,可谓好记性不如烂笔头,故而记录成一篇博文。

玩Elasticsearch的童鞋大概都会遇到这样一个问题,如何快速地将Elasticsearch里的索引结构映射和对应数据快速地进行备份和数据还原。

这时,就可以通过Elasticsearch的导入导出工具Elasticdump来实现,可以将Elasticsearch不同集群的数据进行索引备份和还原。

一、Elasticdump工具介绍

在npm关于Elasticdump的英文官网里,可以看到一篇关于Elasticdump的英文介绍,这个工具的logo很有意思,是一台可以搬运(迁移)东西(数据)的工具车,这个logo就表明该Elasticdump工具可用来迁移备份和恢复数据。

image

使用Elasticdump时特别需要是,若直接用npm install elasticdump -g来按照,node版本需要在v10.0.0以上才能支持,否则执行该指令会出错。

Elasticdump通过向发送一个input来工作output,其标准指令是

elasticdump --input SOURCE --output DESTINATION [OPTIONS]
  • input SOURCE表示读取数据源SOURCE
  • output DESTINATION表示将数据源传输到目的地DESTINATION。
  • SOURCE/DESTINATION两者都可以是Elasticsearch URL或文件,如果是Elasticsearch URL,例如http://127.0.0.1/index,就意味着是直接往地址为http://127.0.0.1ES库里导入或者从其导出索引相关数据。
  • [OPTIONS]是操作选项,比较常用有type和limit,其他操作这里就不展开介绍。
     

type是ES数据导出导入类型,Elasticdum工具支持以下数据类型的导入导出——

type类型说明
mappingES的索引映射结构数据
dataES的数据
settingsES的索引库默认配置
analyzerES的分词器
templateES的模板结构数据
aliasES的索引别名

limit从SOURCE备份到DESTINATION的对象数量,默认是100,可自定义设置。

二、Elasticdump工具安装

1. 在线安装Elasticdum工具需要依赖node,故而先安装v10.0.0以上的node。

[root@zhu opt]# wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
[root@zhu opt]# tar xvf  node-v12.18.3-linux-x64.tar.xz -C /usr/local/
[root@zhu opt]# mv /usr/local/node-v12.18.3-linux-x64 /usr/local/nodejs
[root@zhu opt]# echo export NODEJS_HOME=/usr/local/nodejs >> /etc/profile
[root@zhu opt]# echo export PATH=$PATH:$NODEJS_HOME/bin >> /etc/profile
[root@zhu opt]# echo export NODEJS_PATH=$NODEJS_HOME/lib/node_modules >>/etc/profile
[root@zhu opt]# source /etc/profile
[root@zhu opt]# ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
[root@zhu opt]# ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
[root@zhu opt]# npm -v
6.14.6
[root@zhu opt]# node -v
v12.18.3

2. 通过npm安装elasticdump

[root@zhu opt]# npm install elasticdump -g

安装成功后,进入到

[root@zhu opt]#cd /usr/local/nodejs/lib/node_modules/elasticdump/bin

可以看到有两个命令,elasticdump用来备份单个索引,multielasticdump可以用来并行备份多个索引:

root@zhu bin]# ll
总用量 20
-rwxr-xr-x. 1 1001 1001  4026 4月   9 14:38 elasticdump
-rwxr-xr-x. 1 1001 1001 14598 10月 26 1985 multielasticdump

三、Elasticdump工具使用

使用elasticdump进行单个索引备份还原操作——


- 导出索引test_event的mapping映射结构:

[root@zhu opt]# elasticdump --input=http://127.0.0.1:9200/test_event  --output=/opt/test_event_mapping.json --type=mapping 

检查当前,发现已经备份成json文件:

[root@zhu opt]# ll
总用量 14368
-rw-r--r--. 1 root root     6200 4月   9 11:30 ucas_hisevenr_mapping.json

还可以直接导入到另一个es集群当中:

[root@zhu opt]# elasticdump --input=http://127.0.0.1:9200/test_event   --output=http://127.0.0.2:9200/test_event --type=mapping

- 导出索引test_event的数据:

[root@zhu opt]# elasticdump --input=http://127.0.0.1:9200/test_event  --output=/opt/data.json --type=data

同理,可直接将备份数据导入另一个es集群:

[root@zhu opt]# elasticdump --input=http://127.0.0.1:9200/test_event   --output=http://127.0.0.2:9200/test_event --type=data

elasticdump进行数据还原操作

- mapping映射结构还原:

[root@zhu opt]# elasticdump --input=/opt/test_event_mapping.json --output http://127.0.0.1:9200/ --type=mapping

- data数据还原

[root@zhu opt]# elasticdump --input=/opt/data.json    --output=http://127.0.0.1:9200/test_event    --type=data

使用elasticdump进行多个索引备份操作:

#将ES索引及其所有类型备份到es_backup文件夹中
multielasticdump direction = dump match ='^.*$'  input = http://127.0.0.1:9200   output =/tmp/es_backup
#仅备份ES索引以“ -index”(匹配正则表达式)为前缀的结尾。仅备份索引数据。所有其他类型都将被忽略。#注意:默认情况下会忽略分析器和别名类型
multielasticdump --direction=dump --match='^.*-index$' --input=http://127.0.0.1:9200 --ignoreType='mapping,settings,template'  --output=/tmp/es_backup

使用elasticdump进行多个索引还原操作:

multielasticdump --direction=load --input=/tmp/es_backup --output=http://127.0.0.1:9200


根据npm的elasticdump英文官网介绍可知,这里需要注意一点是,即使用multielasticdump有一个区别的地方是--direction的参数设置和--ignoreType参数设置。

  • 备份时,--direction=dump是默认值,则--input必须是ElasticSearch服务器基本位置的URL(即http://localhost:9200),并且--output必须是目录。每个匹配的索引都会创建一个数据,映射和分析器文件。

  • 还原时,要加载从multi- elasticsearch转储的文件,--direction应将其设置为load--input必须是multielasticsearch转储的目录,并且--output必须是Elasticsearch服务器URL。

  • --match`用于过滤应转储/加载的索引(正则表达式)。

  • --ignoreType允许从转储/加载中忽略类型。支持六个选项。data,mapping,analyzer,alias,settings,template。提供了多类型支持,使用时每种类型必须用逗号分隔,并interval允许控制生成新索引的转储/装入的时间间隔。

  • --includeType允许将类型包含在转储/装载中。支持六个选项- data,mapping,analyzer,alias,settings,template

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkinsfile+Dockerfile前端vue自动化部署

前言 本篇主要介绍如何自动化部署前端vue项目 其中,有两种方案: 第一种是利用nginx进行静态资源转发;第二种方案是利用nodejs进行启动访问; 各个组件版本如下: Docker 最新版本;Jenkins 2.387.3nginx …

【项目】云备份系统基础功能实现

目录 一.项目介绍1.云备份认识2.服务端程序负责功能与功能模块划分3.客户端程序负责功能与功能模块划分4.开发环境 二.环境搭建1.gcc升级7.3版本2.安装jsoncpp库3.下载bundle数据压缩库4.下载httplib库 三.第三方库认识1.json(1)json认识(2)jsoncpp认识(3)json实现序列化(4)jso…

解决公网下,k8s calico master节点无法访问node节点创建的pod

目的:解决pod部署成功后,只能在node节点访问,而master节点无法访问 原因:集群搭建时,没有配置公网进行kubectl操作,从而导致系统默认node节点,使用内网IP加入k8s集群!如下&#xff…

短视频ai剪辑分发账号矩阵系统(招商oem)----源头技术开发

短视频ai剪辑分发账号矩阵系统 1. 视频剪辑工具——原创短视频一键生成,视频剪辑亮点分析 (1)多模式智能剪辑 包含智能混剪逻辑、智能组合、场景顺序、图片生成视频等多种模式。在视频创作上也做了简化,即使是没有剪辑能力的创…

多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测

多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测 目录 多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MAT…

32位单片机PY32F040,主频72M,外设丰富,支持断码LCD

PY32F040 系列微控制器采用高性能的 32 位 ARM Cortex-M0 内核,宽电压工作范围的 MCU。嵌入高达 128 Kbytes flash 和 16 Kbytes SRAM 存储器,最高工作频率 72 MHz。LQFP64封装两块出头就可以拿到,我们还有开发板和开发资料帮助客户更好的开发。 PY32F040 系列微控…

Ps:锁定图层

使用“图层”面板上的锁定图层 Lock Layer功能可以完全或部分锁定图层以保护其内容。 比如,在完成某个图层后希望它不再被修改(包括不透明度和图层样式等),可将其完全锁定。 如果不想更改图像,但对其摆放位置还在犹豫不…

CTFhub-RCE-过滤空格

1. 查看当前目录&#xff1a;127.0.0.1|ls 2. 查看 flag_890277429145.php 127.0.0.1|cat flag_890277429145.php 根据题目可以知道空格被过滤掉了 3.空格可以用以下字符代替&#xff1a; < 、>、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 $IFS在li…

家庭网络中的组网方式

家庭网络中&#xff0c;目前也衍生出了比较多的组网方式&#xff0c;也不是只有Easymesh&#xff0c;我们还是要辩证的去看&#xff0c;没有绝对的好和坏&#xff0c;需求不同&#xff0c;取舍不同。 这里博主简单的介绍几种组网方式&#xff0c;上图也比较直观 1.wds wds是…

大数据分析与应用实验任务八

大数据分析与应用实验任务八 实验目的 进一步熟悉pyspark程序运行方式&#xff1b;熟练掌握pysaprk RDD基本操作相关的方法、函数。 实验任务 进入pyspark实验环境&#xff0c;在图形界面的pyspark命令行窗口中完成下列任务&#xff1a; 在实验环境中自行选择路径新建以自…

新零售系统平台解决方案 线上线下小程序怎么做

新零售线上线下解决方案是将传统零售业务与互联网科技相结合&#xff0c;通过数字化、智能化手段提升零售业务效率和用户体验的解决方案&#xff0c;它既有提供消费者线下体验&#xff0c;强调“稳”&#xff0c;又有互联网线上的“快”。 线上线下小程序可以通过一体化的进销存…

文本格式清理工具 TextSoap mac中文版软件特色

TextSoap mac是一款文本格式清理工具。TextSoap可以帮助用户清除掉text文档内的文字格式&#xff0c;还可以将文档内的url转换成超链接&#xff0c;简单方便&#xff0c;是你日常办公不可缺少的工具。 TextSoap for mac软件特色 1、清洁界面 2、集成文本编辑器 3、100多个内…

全栈工程师必须要掌握的前端Html技能

作为一名全栈工程师&#xff0c;在日常的工作中&#xff0c;可能更侧重于后端开发&#xff0c;如&#xff1a;C#&#xff0c;Java&#xff0c;SQL &#xff0c;Python等&#xff0c;对前端的知识则不太精通。在一些比较完善的公司或者项目中&#xff0c;一般会搭配前端工程师&a…

OpenCV图像纹理

LBP描述 LBP&#xff08;Local Binary Pattern&#xff0c;局部二值模式&#xff09;是一种用来描述图像局部纹理特征的算子&#xff1b;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikinen, 和D. Harwood 在1994年提出&#xff0c;用于纹理特征提取…

Python实现双进程:防止单点故障的深度解析

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享 Python实现双进程&#xff1a;防止单点故障的深度解析&#xff0c;文章2800字&#xff0c;阅读大约10分钟&#xff0c;大家enjoy~~ 在分布式系统中&#xff0c;确保系统的高…

IntelliJIDEA快捷键中文版

IntelliJIDEA快捷键中文版&#xff0c;对于Android Studio也适用。官方快捷键链接在此&#xff0c;官方上是英文的&#xff0c;我于2023-11-16下载并翻译成中文&#xff0c;可能翻译不太准&#xff0c;所以英文我都保留下来了&#xff0c;大家可以对比着看&#xff0c;有些英文…

文件传输客户端 SecureFX mac中文版支持多种协议

SecureFX mac是一款功能强大的文件传输客户端&#xff0c;可在 Mac 操作系统上使用。它由 VanDyke Software 公司开发&#xff0c;旨在为用户提供安全、可靠、高效的文件传输服务。 SecureFX 支持多种协议&#xff0c;包括 SFTP、SCP、FTP、FTP over SSL/TLS 和 HTTP/S。它使用…

Python---列表 集合 字典 推导式(本文以 列表 为主)

推导式&#xff1a; 推导式comprehensions&#xff08;又称解析式&#xff09;&#xff0c;是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列&#xff08;一个有规律的列表或控制一个有规律列表&#xff09;的结构体。 共有三种推导&#xff1a;列表…

Trigger替换Demo

maven工程 pom依赖 <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version> </dependency> import org.quartz.Job; import org.quartz.JobExecutionContext; imp…

怎么使用Cpolar+Lychee搭建私人图床网站并实现公网访问?

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…