前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云ES如何通过Reindex实现跨集群数据拷贝<上>

腾讯云ES如何通过Reindex实现跨集群数据拷贝<上>

原创
作者头像
南非骆驼说大数据
修改2021-04-10 21:29:29
3.3K0
修改2021-04-10 21:29:29
举报

一、前言|

在前面的生产实践中,我们经常会用reindex命令去拷贝复制索引文档,但是除了此功能,reindex还能实现跨集群复制索引,今天我们来试试这个功能.我将以自建集群与云上集群为标准,互相使用Reindex,来实现数据的跨越拷贝。拓扑如下:

私有云、公共云网络图
私有云、公共云网络图

二、前提条件

  1. 新购一个腾讯云ES集群,创建时间必须在2020年5月20日以后;
  2. Reindex支持拷贝得ES版本必须主版本相同,不能ES6、ES7实现reindex;
  3. 云梯内部同事购买的ES集群因为网络架构原因,暂时不支持此功能,可以通过控制台自己购买ES集群;
  4. 实现2个不同集群间的底层网络的互通;

三、Reindex 实践

<一> 实现从私有云ES到公有云ES集群的数据拷贝

在实现此功能前,我们需要在ES集群的配置文件开放设置白名单,需要将远程操作reindex功能的集群VIP配置到需要拷贝数据的集群的配置文件里,比如,我这里是云拷贝自建集群的数据,那么我就要在自建集群的配置文件里添加需要访问的集群IP白名单。然后重启每一个ES节点服务。大概设置如下:

代码语言:javascript
复制
reindex.remote.whitelist: "172.16.15.13:9200"
// 在自建集群上添加云上ES集群的VIP,每个节点都要添加;
自建集群添加云上集群VIP白名单
自建集群添加云上集群VIP白名单

接下来,在自建ES集群上实现数据的Reindex拷贝复制验证:

首先,我们在公有云ES集群创建一个远程索引,用来验证测试

代码语言:javascript
复制
 PUT bigdataserver/_doc/1
  {
    "name":"eric",
    "age": 18,
    "job":"Bigdata Engineer",
    "Saraly": "free"
  }
  

其次,我们在自建ES集群上,采用Reindex 将云上面的远程索引给同步一下到本地,如下:

代码语言:javascript
复制
 POST _reindex
{
  "source": {
    "remote": {
      "host": "http://172.16.XX.XX:9200",  //云ES集群VIP
      "socket_timeout": "1m",
      "connect_timeout": "10s",
      "username": "elastic",
      "password": "XXXXXXX"
    },
    "index": "bigdataserver"
  },
  "dest":{
    "index": "bigdataserver02"
  }
}

然后,我们发现,一个bigdataserver02的索引在本地拷贝成功,如下:

索引拷贝成功
索引拷贝成功

<二> 实现从公有云ES到私有云ES集群的数据拷贝

如果要实现公有云ES到自建云ES的数据拷贝,我们也需要给云ES集群的配置文件进行IP开白,用户可以在云上的ES集群的腾讯云控制台,高级配置文件里,自定义图形化添加reindex配置文件,列如,需要将自建ES集群的IP添加进云上的配置文件:

代码语言:javascript
复制
reindex.remote.whitelist: "172.16.15.1:9200,172.16.15.1:9200,172.16.15.3:9200"

重启生效后的界面大概如下:

修改云ES的高级配置
修改云ES的高级配置

接下来,在云ES集群上实现数据的Reindex拷贝复制验证,同样,在自建集群上创建测试索引:

代码语言:javascript
复制
PUT tencentes/_doc/1
  {
    "name":"eric",
    "age": 18,
    "job":"Bigdata Engineer",
    "Saraly": "free"
  }
  

其次,我们在云ES集群上,采用Reindex 将自建集群上面的远程索引给同步一下到本地,如下:

代码语言:javascript
复制
POST _reindex
{
  "source": {
    "remote": {
      "host": "http://172.16.15.3:9200",
      "socket_timeout": "1m",
      "connect_timeout": "10s"
    },
    "index": "tencentes"
  },
  "dest":{
    "index": "tencentes02"
  }
}

然后,我们发现,一个tencentes02的索引在本地拷贝成功,如下:

索引拷贝成功
索引拷贝成功

数据再次操作成功。

三、腾讯云ES集群间Reindex实践

参考链接:腾讯云ES如何通过Reindex实现跨集群数据拷贝<下> https://cloud.tencent.com/developer/article/1811443

四、总结

通过上面的测试,我们从公有云到私有云,从私有云到公有云,通过Reindex都能很好的实现远程跨集群拷贝功能。当然,更多Reindex功能的细节请参考官网细节,这里不再多说。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言|
  • 二、前提条件
  • 三、Reindex 实践
    • <一> 实现从私有云ES到公有云ES集群的数据拷贝
      • <二> 实现从公有云ES到私有云ES集群的数据拷贝
      • 三、腾讯云ES集群间Reindex实践
      • 四、总结
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档