当前位置:首页 > 大数据 > ES > 正文内容

ES数据的备份、恢复、迁移-elasticdump工具

只想摆烂的运维2024-10-07 23:49:29ES

Elasticdump 是一个用于 Elasticsearch 的数据导入和导出工具,非常适合于数据备份、还原以及在 Elasticsearch 集群之间迁移数据。


1.elasticdump安装包下载

下载地址

https://github.com/elasticsearch-dump/elasticsearch-dump/tags

选择合适的版本进行下载即可

wps1.jpg

wps2.jpg



这里安装的版本是6.111.0



2.安装node.js

elasticdump的运行需要依赖node.js,因此,需要事先安装node.js,有两种方式,yum和源码安装

yum安装

]# yum -y install nodejs npm


源码安装

源码包下载地址:https://nodejs.org/zh-cn/download/source-code

根据需要下载合对应的版本


更新 C++ 编译器,更新到10.1.0版本

]# yum -y install yum install centos-release-scl
]# yum -y install centos-release-scl
]# yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++


进行源码编译安装

]# ./configure --prefix=/usr/local/node
]# make && make install


安装所有模块

]# npm install


设置环境变量

]# echo 'export PATH=/usr/local/node/bin/:$PATH' >> /etc/profile
]# source /etc/profile


查看node版本


wps3.jpg



3.解压elasticdump安装包

安装路径:/opt


]# cd /opt
]# tar xvf elasticsearch-dump-6.111.0.tar.gz
]# mv elasticsearch-dump-6.111.0 esdump


4.导出/导入es索引数据

导出数据到本地目录,再导入到目标ES节点中

索引名称:logstash-dev-2024.10.03

导出索引数据到本地文件中,名称"index_data.json"

]# cd /opt/esdump/data
]# /opt/esdump/bin/elasticdump \
>  --input=http://esuser:es123@172.25.230.47:19201/logstash-dev-2024.10.03 \
>  --output=index_data.json \
>  --type=data

--input   要导出索引的url地址,172.25.230.47:19201/logstash-dev-2024.10.03是索引地址,"esuser:es123"是es的账号:密码

--output    指定备份文件存放路径,这里指定为当前路径的index_data.json文件

--type   指定导出的数据类型,这里设置为data

             data: 用于导出或导入索引中的数据(documents)

             mapping: 用于导出或导入索引的映射(schema)。

             settings: 用于导出或导入索引的设置。



导出成功

wps5.jpg


导出索引映射到本地文件中,名称"index_mapping.json"

]# /opt/esdump/bin/elasticdump \ index_mapping.json
>   --input=http://elastic:elk@123@172.25.230.47:19201/logstash-dev-2024.10.03 \
>   --output=index_mapping.json \
>   --type=mapping

wps6.jpg


导出的索引数据文件和映射文件

wps7.jpg


导入索引映射到目标ES节点中

]# /opt/esdump/bin/elasticdump \
>   --input=index_mapping.json \
>   --output=http://172.25.230.52:19200/logstash-dev-2024.10.03 \
>   --type=mapping

--input是导出的在本地的索引映射文件路径,--output是要导入的ES节点的远程路径

wps8.jpg


导入索引数据到目标ES节点中

]# /opt/esdump/bin/elasticdump \
>   --input=index_data.json \
>   --output=http://172.25.230.52:19200/logstash-dev-2024.10.03 \
>   --type=data

--input是导出的在本地的索引数据文件路径,--output是要导入的ES节点的远程路径


查看导入的索引"logstash-dev-2024.10.03"以及数据情况

wps9.jpg

wps10.jpg


直接从源ES节点,导入到目标ES节点

索引名称:logstash-dev-2024.10.01

导入索引映射

]# /opt/esdump/bin/elasticdump \
>   --input=http://esuser:es123@172.25.230.47:19201/logstash-dev-2024.10.01 \
>   --output=http://172.25.230.52:19200/logstash-dev-2024.10.01 \
>   --type=mapping

wps11.jpg


导入索引数据

]# /opt/esdump/bin/elasticdump  \
--input=http://esuser:es123@172.25.230.47:19201/logstash-dev-2024.10.01 \  
--output=http://172.25.230.52:19200/logstash-dev-2024.10.01  \
--type=data

wps12.jpg


查看导入的索引"logstash-dev-2024.10.01"以及数据情况

wps13.jpg

wps14.jpg


5.docker操作elasticdump

下载elasticdump的docker镜像

]# docker pull elasticdump/elasticsearch-dump

wps15.jpg

导出索引映射

]# docker run -d --rm \
--name elastic-dump \     ##容器名称
-v ./:/data \            ##将容器中的/data目录映射到本机的当前目录下    
elasticdump/elasticsearch-dump \              
--input=http://esuser:elk@123@172.25.230.47:19201/logstash-dev-2024.09.30 \      ##索引名称
--output=/data/logstash-dev-2024.09.30_mapping.json \                    ##索引映射文件导出存放的路径
--type=mapping


导出索引数据

]# docker run -d --rm \
--name elastic-dump \
-v ./:/data \
elasticdump/elasticsearch-dump \
--input=http://elastic:es123@172.25.230.47:19201/logstash-dev-2024.09.30 \
--output=/data/logstash-dev-2024.09.30_data.json \
--type=data



导入索引映射

]# docker run -d --rm \
--name elastic-dump \
-v ./:/data \
elasticdump/elasticsearch-dump \
--input=/data/logstash-dev-2024.09.30_mapping.json \
--output=http://172.25.230.52:19200/logstash-dev-2024.09.30 \
--type=mapping


导入索引数据

]# docker run -d --rm \
--name elastic-dump \
-v ./:/data \
elasticdump/elasticsearch-dump \
--input=/data/logstash-dev-2024.09.30_data.json \
--output=http://172.25.230.52:19200/logstash-dev-2024.09.30 \
--type=data


查看数据导入/导出状态

]# docker logs  -f elastic-dump

wps16.jpg



elasticdump参数解释

参数说明
--input 指定输入源。可以是Elasticsearch的URL,文件路径或stdin。
--output 指定输出目的地。可以是Elasticsearch的URL,文件路径或stdout。
--type 指定要导出或导入的数据类型(data, analyzer, mapping, settings)
--searchBody 查询Elasticsearch,只导出匹配的文档。
--sourceOnly 仅导出指定的索引。
--limit 每次请求获取的文档数量。
--size Elasticsearch查询的大小。
--all 导出所有索引。
--delete 在导入之前删除输出目标中的数据。
--transform 对导出的数据进行转换。
--headers 添加自定义HTTP头。
--timeout 超时时间(毫秒)。
--debug 打印调试信息。
--scrollTime 设置Elasticsearch的scroll时间。
--maxSockets 最大套接字数量。
--offset 从指定偏移量开始导出。
--input-index 指定输入的索引名。
--output-index 指定输出的索引名。
--input-aws-accessKeyId AWS访问密钥ID(用于S3)。
--input-aws-secretAccessKey AWS秘密访问密钥(用于S3)。
--input-aws-region AWS区域(用于S3)。


扫描二维码推送至手机访问。

版权声明:本文由个人博客发布,如需转载请注明出处。

本文链接:https://opszzfwordpress.club/post/227.html

分享给朋友:
返回列表

上一篇:ES数据的备份、恢复、迁移-快照方式

没有最新的文章了...

“ES数据的备份、恢复、迁移-elasticdump工具” 的相关文章

ES部署

ES部署

安装包版本:elasticsearch-7.10.1JDK版本:jdk171、环境准备建立安装目录,...

ES数据的备份、恢复、迁移-快照方式

ES数据的备份、恢复、迁移-快照方式

Elasticsearch提供了快照和恢复功能,可以对整个集群或单个索引进行快照。快照是一个包含索引...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。