在前面的生产实践中,我们经常会用reindex命令去拷贝复制索引文档,但是除了此功能,reindex还能实现跨集群复制索引,今天我们来试试这个功能.我将以自建集群与云上集群为标准,互相使用Reindex,来实现数据的跨越拷贝。拓扑如下:
在实现此功能前,我们需要在ES集群的配置文件开放设置白名单,需要将远程操作reindex功能的集群VIP配置到需要拷贝数据的集群的配置文件里,比如,我这里是云拷贝自建集群的数据,那么我就要在自建集群的配置文件里添加需要访问的集群IP白名单。然后重启每一个ES节点服务。大概设置如下:
reindex.remote.whitelist: "172.16.15.13:9200"
// 在自建集群上添加云上ES集群的VIP,每个节点都要添加;
接下来,在自建ES集群上实现数据的Reindex拷贝复制验证:
首先,我们在公有云ES集群创建一个远程索引,用来验证测试
PUT bigdataserver/_doc/1
{
"name":"eric",
"age": 18,
"job":"Bigdata Engineer",
"Saraly": "free"
}
其次,我们在自建ES集群上,采用Reindex 将云上面的远程索引给同步一下到本地,如下:
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集群的配置文件进行IP开白,用户可以在云上的ES集群的腾讯云控制台,高级配置文件里,自定义图形化添加reindex配置文件,列如,需要将自建ES集群的IP添加进云上的配置文件:
reindex.remote.whitelist: "172.16.15.1:9200,172.16.15.1:9200,172.16.15.3:9200"
重启生效后的界面大概如下:
接下来,在云ES集群上实现数据的Reindex拷贝复制验证,同样,在自建集群上创建测试索引:
PUT tencentes/_doc/1
{
"name":"eric",
"age": 18,
"job":"Bigdata Engineer",
"Saraly": "free"
}
其次,我们在云ES集群上,采用Reindex 将自建集群上面的远程索引给同步一下到本地,如下:
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实现跨集群数据拷贝<下> https://cloud.tencent.com/developer/article/1811443
通过上面的测试,我们从公有云到私有云,从私有云到公有云,通过Reindex都能很好的实现远程跨集群拷贝功能。当然,更多Reindex功能的细节请参考官网细节,这里不再多说。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。