两种比较好的ES集群迁移数据的方法
文章目录O、简介一、使用elasticdump工具迁移0.安装nodejs(如果已安装请忽略)1.升级nodejs2.安装elasticdump工具3.迁移指定索引的settings,mapping,data二、利用ES自带快照备份到文件存储进行迁移0.源ES集群指定共享文件夹1.源ES集群中创建repository2.创建快照(快照备份数据)3.移动源ES集群snapshot至目标ES集群的仓库
·
文章目录
O、简介
介绍两种比较好的ES集群迁移数据的方法。下面是对两种方法的具体描述,已经过实践验证通过。
方法1
、利用开源工具elasticdump进行迁移。优点是操作及其简单,且不需要重启集群;缺点是传输较慢,不适用大数据量的传输,过程中集群间使用http端口,占用集群带宽。主要还是慢。
方法2
、利用ES自带快照备份到文件存储进行迁移。优点是速度快,因为是写磁盘,拷贝到新集群服务器,从快照恢复,速度快。适用于大数据量的场景
一、使用elasticdump工具迁移
0.安装nodejs(如果已安装请忽略)
执行
yum install -y nodejs
1.升级nodejs
执行
npm install -g n
n latest
2.安装elasticdump工具
执行
npm install elasticdump -g
3.迁移指定索引的settings,mapping,data
执行
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=settings
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=mapping
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=data
二、利用ES自带快照备份到文件存储进行迁移
0.源ES集群指定共享文件夹
保证/data/backups目录存在,且属于elastic启动用户
mkdir /data/backups
chown -R elastic:elastic /data/backups
vim master节点 elasticsearch.yml添加行
path.repo: ["/data/backups"]
重启master节点生效
1.源ES集群中创建repository
执行指令
curl -XPUT http://fromhost:9200/_snapshot/my_repository -d '{
"type": "fs",
"settings": {
"location": "/data/backups"
}
}'
2.创建快照(快照备份数据)
curl -XPUT http://fromhost:9200/_snapshot/my_repository/snapshot_20191114?wait_for_completion=true -d '{
"indices": "indexname"
}'
备份完成后文件夹/data/backups目录下有备份文件
3.移动源ES集群snapshot至目标ES集群的仓库
拷贝/data/backups/my_backup到新es集群机器
4.目标ES集群创建repository
curl -XPUT http://tohost:9200/_snapshot/my_repository -d '{
"type": "fs",
"settings": {
"location": "/data/backups"
}
}'
5.新的集群查看快照信息
curl -XGET http://tohost:9200/_snapshot/my_repository/_all
6.从快照恢复
curl -XPOST http://tohost:9200/_snapshot/my_repository/snapshot_20191114/_restore
更多推荐
已为社区贡献1条内容
所有评论(0)