qq524061227 发表于 2019-1-28 10:07:12

ELK5.4 修改分片数及分片分配方式

  一、修改分片数
  elasticsearch默认分片数为5,副本数为1.如果需要修改分片数有两种方式
  1、修改索引settings
  查看索引状态:curl -GET "http://localhost:9200/index/__settings"

  修改索引状态信息:

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

  #上传修改后的默认模板

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
}}  




页: [1]
查看完整版本: ELK5.4 修改分片数及分片分配方式