项目一:elasticsearch 迁移方案
elasticsearch 索引迁移
-
查看参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.15/docs-reindex.html
-
添加需要迁移的es集群白名单到 目的 es配置文件elasticsearch.yml
reindex.remote.whitelist: "otherhost:9200, another:9200, 127.0.10.*:9200, localhost:*"
-
kibana 开发工具界面使用_reindex,重新创建索引。或者用curl命令都行
#kibana 界面运行,数据量过大,下面的配置 POST _reindex?wait_for_completion=false {和下面相同的内容} #使用curl 命令 curl -X POST "localhost:9200/_reindex?pretty" -H 'Content-Type: application/json' -d' { "source": { "remote": { "host": "http://otherhost:9200", "username": "user", "password": "pass" }, "index": "my-index-000001", "size": 10, "socket_timeout": "1m", "connect_timeout": "10s", "query": { #查询匹配到的文档,只创建这些文档,不设置就复制所有索引 "match": { "test": "data" } } }, "dest": { "index": "my-new-index-000001" } }
size 10 #从远程服务器重新索引使用默认最大大小为 100mb 的堆上缓冲区。如果远程索引包含非常大的文档,您将需要使用较小的批量大小。下面的示例将批量大小设置10 为非常非常小。 "socket_timeout": "1m", "connect_timeout": "10s" 还可以使用socket_timeout字段设置远程连接上的套接字读取超时,以及使用字段设置连接超时 connect_timeout。两者都默认为 30 秒。此示例将套接字读取超时设置为一分钟,将连接超时设置为 10 秒:
-
GET _tasks/task_id 根据执行后返回的task_id 查询 reindex 执行情况。
reindex 提升效率:
Reindex支持Sliced Scroll以并行化重建索引过程。 这种并行化可以提高效率,并提供一种方便的方法将请求分解为更小的部分。
sliced原理(from medcl)
1)用过Scroll接口吧,很慢?如果你数据量很大,用Scroll遍历数据那确实是接受不了,现在Scroll接口可以并发来进行数据遍历了。
2)每个Scroll请求,可以分成多个Slice请求,可以理解为切片,各Slice独立并行,利用Scroll重建或者遍历要快很多倍。
elasticsearch 全部数据迁移
直接复制es设置的path.data后面的目录 到目标es
项目二:elasticsearch 写入性能优化
-
增加refresh间隔
默认的refresh间隔是1s,用index.refresh_interval参数可以设置,这样会其强迫es每秒中都将内存中的数据写入磁盘中,创建一个新的segment file。正是这个间隔,让我们每次写入数据后,1s以后才能看到。但是如果我们将这个间隔调大,比如30s,可以接受写入的数据30s后才看到,那么我们就可以获取更大的写入吞吐量,因为30s内都是写内存的,每隔30s才会创建一个segment file。
-
index buffer
如果我们要进行非常重的高并发写入操作,那么最好将index buffer调大一些,indices.memory.index_buffer_size,这个可以调节大一些,设置的这个index buffer大小,是所有的shard公用的,但是如果除以shard数量以后,算出来平均每个shard可以使用的内存大小,一般建议,但是对于每个shard来说,最多给512mb,因为再大性能就没什么提升了。es会将这个设置作为每个shard共享的index buffer,那些特别活跃的shard会更多的使用这个buffer。默认这个参数的值是10%,也就是jvm heap的10%,如果我们给jvm heap分配10gb内存,那么这个index buffer就有1gb,对于两个shard共享来说,是足够的了。
https://blog.csdn.net/lm324114/article/details/105028701/