前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 Elasticsearch 运维篇(十三)数据迁移

腾讯云 Elasticsearch 运维篇(十三)数据迁移

原创
作者头像
南非骆驼说大数据
发布2020-02-23 00:08:42
2.7K0
发布2020-02-23 00:08:42
举报
文章被收录于专栏:南非骆驼说大数据

前言

前面我们通过通过腾讯云控制台快速构建了一个ES集群,并能通过云控制台管理界面或者CVM操作管理ES集群。我们知道ES是一个存储搜索分析引擎,那么如何让自己的现有的ES集群的数据跨平台的迁移到腾讯云上来呢??我们推荐ES官方的snapshot方法。下面为大概的过程(因为本人账号属于集体账号,处于安全考虑后面的部分过程粗略讲一下

一、snapshot(跨集群数据、数据量大)

snapshot api 是 ES 用于对数据进行备份和恢复的一组 api 接口,可以通过 snapshot api 进行跨集群的数据迁移,原理就是从源 ES 集群创建数据快照,然后在目标 ES 集群中进行恢复。

现有ES集群IP: 172.18.X.X 要求: 能上外网

现有ES集群IP
现有ES集群IP
JPS进程信息
JPS进程信息

目标ES集群VIP:10.1.0.7   同网段CVMIP为:10.1.0.14

目标集群同网段IP
目标集群同网段IP

需求: 将原ES集群的索引信息通过快照的形式迁移到目标ES。解决步骤如下:

1,首先:在自有的源ES集群上,创建快照所要存储的仓库-repository。仓库类型fs ,首先要在ES配置文件elasticsearch.yml设置仓库路径,注意:此路径标识的目录在本地一定要存在!!

elasticsearch 配置文件更改
elasticsearch 配置文件更改

2,其次,重启ES集群 确定节点都正常启动。

3,接下来,我们调用snapshot api 创建 repository 使用如下命令:

创建仓库
创建仓库

返回结果:显示错误。如下”:

仓库创建报错
仓库创建报错

报错提示的意思是访问被拒绝。。。操作多次,仍是相同的错误。那么是不是仓库所在路径的文件夹没权限呢??

所以,我改了一下文件夹权限 chown -R elas:elas /usr/local/hezhen/test 如下所示:

改权限
改权限

然后再次启动ES集群,让配置生效。再次执行上面的命令,发现成功了。如下图:

构建仓库
构建仓库

原因很简单:ES 5.x版本后,默认是需要通过普通用户来启用服务的。因为我们刚新建的文件夹的权限是root。elas去启动服务的时候无法将命令写进属于root的文件夹。自然就报错。

3,在自有的集群中创建索引快照,如下:创建一条索引的快照

创建索引的快照
创建索引的快照
为索引创建快照
为索引创建快照

创建完后,文件夹里边有数据了,验证一下“

索引数据
索引数据

如果要备份所有索引,可以使用如下命令:

PUT _snapshot/aa_buckup/snapshot_1?wait_for_completion=true

查看快照信息 GET _snapshot/aa_buckup/snapshot_1?pretty

查看索引快照信息
查看索引快照信息

4,目标ES集群中创建repository

方法:在腾讯云上创建 COS 对象 bucket,把仓库建在 COS 的某个 bucket 下。步骤

首先:你需要登录到腾讯云控制台的COS(对象存储服务)项去新建一个bucket桶,并命名为自己习惯的名字

其次:在Kibana命令行下去新建一个仓库,将其映射到腾讯云

新建COS仓库
新建COS仓库

如果报下面的错,说明你要去云控制台去设置安全秘钥与访问码

那么这样在目标集群上就把ES仓库建立在自己的Bulk上了。

最后,将源 ES 集群创建好的 snapshot 上传至目标 ES 集群创建好的仓库中。(打包--下载--解压----上传)

5,在目标集群从快照恢复索引 使用此命令即可

GET _snapshot/aa_buckup/snapshot_1/_restore?wait_for_completion=true

6,查看快照恢复状态

GET _snapshot/_status

二、总结

1,ES数据作集群迁移的时候根据不同的使用场景有不同的方法。比如还有elasticsearch-dump 、Logstash.他们的区别是:elasticsearch-dump 和 logstash 迁移方式更适合于源 ES 集群和目标 ES 集群处于同一网络的情况下进行迁移。需要跨云厂商的迁移,可以选择使用 snapshot 的方式进行迁移,例如从阿里云 ES 集群迁移至腾讯云 ES 集群。

2,elasticsearchdump 工具和 MySQL 数据库用于做数据备份的工具 mysqldump 类似,都是逻辑备份,需要将数据一条一条导出后再执行导入,所以适合数据量小的场景下进行迁移。

3,snapshot 的方式适合数据量大的场景下进行迁移

因此,我们这里重点介绍了一下snapshot的使用。因为它不受网络限制,属于离线跨群的数据迁移工具。后面有时间我们再继续深入讲解它更多的案例应用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、snapshot(跨集群数据、数据量大)
    • 需求: 将原ES集群的索引信息通过快照的形式迁移到目标ES。解决步骤如下:
    • 二、总结
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档