关于ElasticSearch数据导出的一次实践

关于ElasticSearch数据迁移/数据导出的一次实践经历

问题场景

最近需要到客户现场将ElasticSearch中的数据导出,然后做大数据样本分析,这里我一开始想的是通过Docker部署dejavu面板,然后进行导出

上面部署docker虽然非常简单,但是最核心的是需要联网,很多客户都是在内网的环境中部署了设备,因此这个方案并不通用,因此笔者决定想一种古老的方式……那就是把数据节点相关文件拷贝出来,然后再拿回到自己电脑里导入恢复数据。

ElasticSearch部署

这里首先要部署和客户环境相同的ElasticSearch版本,我这里是用Ubuntu20.04虚拟机部署的ElasticSearch7.9.2

环境

Ubuntu20.04

下载

下载elasticsearch-7.9.2-linux-x86_64.tar.gz安装包,如果你想安装其他版本,可以访问官网

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz

解压缩elasticsearch-7.9.2-linux-x86_64.tar.gz文件

tar -zxvf elasticsearch-7.9.2-linux-x86_64.tar.gz

切换到bin目录并启动ElasticSearch

./elasticsearch
图片[1]-关于ElasticSearch数据导出的一次实践-FancyPig's blog

启动

这里发现启动的时候报错了,不能使用root账户启动

图片[2]-关于ElasticSearch数据导出的一次实践-FancyPig's blog

这里添加一个用户,比方说es

adduser es
chown -R es /home/fancypig/elasticsearch-7.9.2/

小插曲:如果你没有给新建的用户添加权限(即上面代码的第二行如果没有执行),将会出现如下报错

could not find java in bundled jdk at /home/fancypig/elasticsearch-7.9.2/jdk/bin/java

验证启动是否成功

这里可以通过访问9200端口来进行验证

curl 127.0.0.1:9200
图片[3]-关于ElasticSearch数据导出的一次实践-FancyPig's blog

这里发现已经连上了

数据拷贝

这里,需要根据客户具体环境先找到elasticsearch.yml配置文件位置

find . -name elasticsearch.yml

小技巧:如果你想在linux系统里查找以XXX开头的任意文件或者文件夹,可以输入下面的命令

find . -name XXX\*

找到配置文件的位置后,我们读取看下data存在哪里了

然后就是把这两个目录的文件拷贝出来就行了

图片[4]-关于ElasticSearch数据导出的一次实践-FancyPig's blog

将客户的这些数据资料拷贝到自己的Ubuntu虚拟机相关data、log路径下

之后就是一顿操作,开始恢复数据咯!后续继续补充

© 版权声明
THE END
喜欢就支持一下吧
点赞21赞赏 分享
评论 共17条

请登录后发表评论