ELK stackE L K stack

elasticsearch shard split 分析(一)

2018-02-02  本文已影响240人  华饼

概述

elasticsearch 从6.1版本开始支持shard split。但是和solr不同,elasticsearch并不支持针对单个shard split,而是支持索引级别的split。elasticsearch支持从一个索引split到另外一个索引,源索引的每一个shard都会split成目标索引的两个或者多个shard。

elasticsearch使用split api有两个限制条件。其一是在创建源索引的时候必须指定number_of_routing_shards参数。该参数用于确定哈希空间,下文会具体分析该参数的作用。但是到7.0版本后该参数可以不用人为指定,elasticsearch会帮我们自动生成该参数的值。其二是准备split时必须将源索引阻塞写操作,目的是为了保证split过程中如果出什么问题能不丢数据。

用法

创建源索引

PUT my_source_index
{
"settings": {
"index.number_of_shards" : 1,
"index.number_of_routing_shards" : 2
}
}

阻塞源索引的写操作

PUT /my_source_index/_settings
{
"settings": {
"index.blocks.write": true
}
}

split

POST my_source_index/_split/my_target_index
{
"settings": {
"index.number_of_shards": 2
}
}

监控

可以通过_cat recover接口查看split过程

总结

简单介绍了elasticsearch shard split 怎么使用,在下面几篇文章中将从代码上分析split是怎么实现的。
elasticsearch shard split 分析(二)
elasticsearch shard split 分析(三)
elasticsearch shard split 分析(四)

上一篇下一篇

猜你喜欢

热点阅读