本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效)
本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效)
随着业务量的增加,本地的ES集群服务器性能和磁盘空间有点不够使用,项目组考虑使用腾讯云服务器,以下是我测试的使用_reindex方式迁移ES数据的具体步骤。
1.在腾讯云的ES上建立新索引
可根据业务需求,自行删减mappings无用的字段,更改字段类型和settings的设置,重新设置新索引。
PUT /test1
{
"mappings" : {
"properties" : {
"num" : {
"type" : "text",
"analyzer": "my_analyzer"
},
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"analyzer": "my_analyzer"
},
"englishName" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"analyzer": "my_analyzer"
},
"msg" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
},
"analyzer": "my_analyzer"
}
}
},
"settings": {
"index": {
"analysis": {
"analyzer": {
"my_analyzer": {
"type": "custom",
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "ngram",
"min_gram": "1",
"max_gram": "2"
}
}
}
}
}
}
2.设置白名单
在腾讯云ES的elasticsearch.yml配置文件中添加本地的ES集群IP白名单.
注意:如果本地使用的是内网,需要开通外网访问地址和端口,这里白名单的ip和端口也要换成外网的
#reindex.remote.whitelist: ["ip:9200","ip2:9201"] 迁移数据白名单
reindex.remote.whitelist: ["localhost:9200"]
#跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
3.准备_reindex的设置
可根据个人业务需求,自行选择下面需要的配置选项和设置
"scroll": 每次复制5M的数据,一般设置为5-15 M性能较佳,根据服务器性能自行选择
"wait_for_completion": false 设置不用前台等待返回结果,后台自动执行
"max_docs": 定义只同步100个文档
"conflicts","op_type":这两个一般一起使用,op_type to create将导致_reindex仅在目标索引中创建缺少的文档,但是会报导致版本冲突中止_reindex操作,可以设置 “conflict”:"conflicts": "proceed",_reindex进程将继续发生版本冲突并返回遇到的版本冲突计数。(不建议使用,ES会自动处理ID相同的数据覆盖删除)
"source": 本地要迁移的ES索引设置
"remote":本地ES的对外地址,超时时间设置
"index": 本地要迁移的ES索引名称
"_source": 可设置保留只需要迁移的索引字段
"query": 可设置筛选条件
"size": 每次传输文档的数据量,默认值为1000,可设置为5000-20000
"dest": "index" 腾讯云要接受数据的索引,第一步创建的那个
POST /_reindex?scroll=5m&wait_for_completion=false
{
"max_docs": 100,
"conflicts": "proceed",
"source": {
"remote": {
"host": "http://:9200",
"socket_timeout": "5m",
"connect_timeout": "300s"
},
"index": "test1",
"_source": ["name", "msg",],
"query": {
"match": {
"name": "小明"
}
}
"size": 5000
},
"dest": {
"index": "test1",
"op_type": "create"
}
}
4.执行命令,迁移数据
以下都在腾讯云的kibana中执行的
设置不刷新和副本数位0
PUT /test1/_settings
{
"refresh_interval": -1,
"number_of_replicas": 0
}
执行第三步创建的_reindex
POST /_reindex?scroll=5m&wait_for_completion=false
{
"max_docs": 100,
"conflicts": "proceed",
"source": {
"remote": {
"host": "http://:9200",
"socket_timeout": "5m",
"connect_timeout": "300s"
},
"index": "test1",
"_source": ["name", "msg",],
"query": {
"match": {
"name": "小明"
}
}
"size": 5000
},
"dest": {
"index": "test1",
"op_type": "create"
}
}
等待数据执行,使用 GET _cat/indices 命令查看数据执行结果量
GET _cat/indices
数据全部执行完后,恢复原本要设置的刷新间隔和副本数.
扩展:关于副本数数量设置,可参考我另一篇引用文章中ES的集群原理中二、ES集群核心原理分析:
PUT /index_paytrade_v1/_settings
{
"refresh_interval": "30s",
"number_of_replicas": 1
}
好了,至此就大功搞定了,可以进行查询数据测试了。
关于ES数据迁移腾讯云还有其他3种方式
- elasticsearch-dump
- snapshot
- logstash
具体可参考腾讯云的官方文档地址 : https://cloud.tencent.com/document/product/845/35568
本地ES集群数据通过_reindex方式迁移到腾讯云服务器(亲测有效)的更多相关文章
- 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...
- 多es 集群数据迁移方案
前言 加入新公司的第二个星期的星期二 遇到另一个项目需要技术性支持:验证es多集群的数据备份方案,需要我参与验证,在这个项目中需要关注到两个集群的互通性.es集群是部署在不同的k8s环境中,K8s环境 ...
- Docker安装部署es集群
Docker安装部署es集群:环境准备:已安装docker的centos服务器一台1. 拉取es版本docker pull elasticsearch:5.6.82. 新建文件夹 数据挂载目录 和 配 ...
- ELasticSearch(五)ES集群原理与搭建
一.ES集群原理 查看集群健康状况:URL+ /GET _cat/health (1).ES基本概念名词 Cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产 ...
- 本地虚拟机搭建ES集群
一.环境说明 1.物理机信息(主要): 内存:8G 系统/主频:Win7(旗舰版)64位/3.70GHZ 2.虚拟机信息: VMware Workstation 14 Pro 下载地址: 链接:htt ...
- Kubernetes 搭建 ES 集群(存储使用 cephfs)
一.集群规划 使用 cephfs 实现分布式存储和数据持久化 ES 集群的 master 节点至少需要三个,防止脑裂. 由于 master 在配置过程中需要保证主机名固定和唯一,所以搭建 master ...
- Kubernetes 搭建 ES 集群(存储使用 local pv)
一.集群规划 由于当前环境中没有分布式存储,所以只能使用本地 PV 的方式来实现数据持久化. ES 集群的 master 节点至少需要三个,防止脑裂. 由于 master 在配置过程中需要保证主机名固 ...
- ElasticSearch 集群 & 数据备份 & 优化
ElasticSearch 集群相关概念 ES 集群颜色状态 ①. - 红色:数据都不完整 ②. - 黄色:数据完整,但是副本有问题 ③. - 绿色:数据和副本全都没有问题 ES 集群节点类型 ①. ...
- 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上
阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...
随机推荐
- Python3-socket模块-低级网络接口
Python3中的socket模块提供了对访问套接字(socket)的接口 socket可以理解为是一个管道,通过这个管道可以使两个不同的程序通过网络进行通信,在Python中的scoket()函数可 ...
- day17—max, map, reduce, filter, zip 函数的使用
一.max 函数 l=[3,2,100,999,213,1111,31121,333] print(max(l)) # dic={'k1':10,'k2':100,'k3':30} print(max ...
- JavaScript基础Literal 与 Constructor(008)
JavaScript支持以字面声名法(Literal)的方式来声名对象和数组,相对于构造函数(constructor)的方式,Literal的声 名方式更简洁,更易读,也更少导致Bug.事实上,JSO ...
- 接口&&多态&&构造函数&&关键字
day06 抽象类的局限性(与接口的区别) 抽象类可以定义非抽象方法,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;jdk1.8之后接口可以包含默认方法. 一个类只能继承一个直接父类 ...
- Spring拦截器和SpringAop实现
一.拦截器 1.aop是面向切面编程,原理是java的发射技术. 2.分为三类,before.after.arround 3.springMvc为我们提供了一个适配器HandlerIntercepto ...
- a标签绑定点击事件失败
如图 然后对a标签绑定点击事件 无效 换成span标签可以
- c语言学习笔记第四章——字符串和格式化输入、输出
B站有视频演示 本章学习printf函数的输入输出,字符串的定义与实用. 字符串 字符串(character string)是一个或多个字符的序列,如下所示: "Zing went the ...
- Spring MVC原理简要概括
本篇简要讲解SpringMVC 的运作方式 Spring 的 web 框架是一个设计良好的 web MVC 框架.MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素 ...
- 51Nod 1683 最短路
题意 给定一个未知的\(0/1\)矩阵,对每个\(i\)求\((1,1)\sim(n,m)\)最短路为\(i\)的概率,在矩阵中不能向左走,路径长度为路径上权值为\(1\)的格子个数. \(n\leq ...
- 14.刚体组件Rigidbody
刚体组件是物理类组件,添加有刚体组件的物体,会像现实生活中的物体一样有重力.会下落.能碰撞. 给物体添加刚体: 选中游戏物体->菜单Component->Physics->Rigid ...