一、前言
ElasticSearch6 以后设置索引的默认分片数和副本数已经不在 elasticsearch.yml 文件中了,而是使用了索引模板的方式配置。
1.1 分片是什么?
简单来讲就是咱们在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等达到惊人的速度
1.2 分片个数计算
SN(分片数) = IS(索引大小) / 30
NN(节点数) = SN(分片数) + MNN(主节点数[无数据]) + NNN(负载节点数)
假设有300G大小的数据文件
- 每一个分片数据文件小于30GB
- 每一个索引中的一个分片对应一个节点
- 节点数大于等于分片数
二、分片的设置
2.1 分片与副本数配置
shell> curl -XPUT 'http://10.20.59.21:9200/_template/template_ngx_proxy_access' \
-H 'Content-Type: application/json' \
-d '{"order": 1,"index_patterns": ["ngx_proxy_access_*"],"settings": {"number_of_shards": 3,"number_of_replicas": 1}}'
参数含义:
template_ngx_proxy_access --> 自定义模板名
order:1 --> 设置优先级(数字越大,优先级越高)
index_patterns:ngx_proxy_access_* --> 匹配索引关键字,也可以用星号匹配所有
number_of_shards:3 --> 设置分片数
number_of_replicas:1 --> 设置副本数
2.2 查看配置结果
作者:龍龍小宝