一、修改分片数
elasticsearch默认分片数为5,副本数为1.如果需要修改分片数有两种方式
1、修改索引settings
查看索引状态:curl -GET "http://localhost:9200/index/__settings"
修改索引状态信息:
1
2
3
4
5
|
curl -XPUT 'localhost:9200/index/_settings' -d '{ "index" : {
"number_of_replicas" : 6,
"number_of_replicas": 2
}}'
|
这种方式只能针对某个索引单独修改。如果需要所有索引统一修改,就需要修改模板信息
2、修改模板
#获取默认模板信息
curl -XGET http://localhost:9200/_template/logstash
#删除默认模板
curl -XDELETE http://localhost:9200/_template/logstash
#上传修改后的默认模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
curl -XPUT http://localhost:9200/_template/logstash -d ' { "template": "logstash-*",
"settings": {
"index": {
"number_of_replicas": "2",
"number_of_shards": "6",
"refresh_interval": "5s"
}
},
"mappings": {
"_default_": {
"dynamic_templates": [
{
"message_field": {
"path_match": "message",
"mapping": {
"norms": false,
"type": "text"
},
"match_mapping_type": "string"
}
},
{
"string_fields": {
"mapping": {
"norms": false,
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"match_mapping_type": "string",
"match": "*"
}
}
],
"_all": {
"norms": false,
"enabled": true
},
"properties": {
"@timestamp": {
"include_in_all": false,
"type": "date"
},
"geoip": {
"dynamic": true,
"properties": {
"ip": {
"type": "ip"
},
"latitude": {
"type": "half_float"
},
"location": {
"type": "geo_point"
},
"longitude": {
"type": "half_float"
}
}
},
"@version": {
"include_in_all": false,
"type": "keyword"
}
}
}
},
"aliases": {}
}
' |
二、分片分配
默认情况下shard分片是大致均衡的,但是primary 主分片分配不均衡(某个ES重启或者集群节点变动)
Shard Allocation Settingsedit
The following dynamic settings may be used to control shard allocation and recovery:
-
cluster.routing.allocation.enable
-
Enable or disable allocation for specific kinds of shards:
-
all
- (default) Allows shard allocation for all kinds of shards. -
primaries
- Allows shard allocation only for primary shards. -
new_primaries
- Allows shard allocation only for primary shards for new indices. -
none
- No shard allocations of any kind are allowed for any indices.
-
上面这个参数可以设定分片分配的方式。
PUT _cluster/settings{ "transient": { "cluster.routing.allocation.enable": primaries }}