当前位置:   article > 正文

ES集群部署说明_es部署解析

es部署解析

一、几个基本概念说明

    1. 集群(cluster)

ES的一个概念就是去中心化,字面上理解就是无中心节,与集群中任何一个节点的通信和与整个集群通信是等价的。

2、节点(node)

ES集群中节点粗略分为:
1)候选主节点(主要负责主节点选举,被选举成为主节点后,管理集群变更,如创建或删除索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点)

2)数据节点(主要用于存储分片数据与副本数据,可接收数据读写请求)

3)协调节点(既不负责节点选举,也不负责数据存储,仅能接收数据请求与数据汇总,起到负载分流的作用)。

注:

1)节点可既是候选主节点,也是数据节点。(但在大数据集群中不建议如此使用,防止主节点过大而宕机,导致集群无法使用)。
2)候选主节点数需为奇数,如果为偶数ES集群自动忽略一个候选主节点,如果超过半数候选主节点不可用,整个集群失效,建议候选主节点数为3.

  1. 分片

主分片用以解决水平扩展的问题,通过主分片可以将数据分布到集群内的所有节点上(主分片数是索引创建时指定的,一旦创建不允许更改,除非reindex

增加数据节点,集群自动重新规划分片存放的节点,如:

原有6个分片,2个数据节点,分布如下:

node0

node1

shard 0, shard 1, shard 2

shard 3, shard 4, shard 5

增加一个节点入集群,即三个数据节点,分布如下:

node0

node1

node2

shard 0, shard 1

shard 2, shard 3

shard 4, shard 5

分片数过小(导致后续无法通过增加节点来水平扩容,即上面的例子,超过6个数据节点后再增加节点,无法起到预想的扩容效果,会导致单分片数据过大)

  1. 副本

副本为分片数据备份,可作为主分片数据宕机后数据恢复的依据,同时也可以承担数据请求查询压力,即副本增加可提升负载能力。

注:主分片与副本不会在同一个节点上,单机副本无效。

索引设置有3个分片P,1个副本数据R

node0

node1

node2

P0

P1

P2

R1

R2

R0

  1. 路由规则

hash(routing<默认为_id>) % 主分片数

二、测试环境部署情况

1)、部署地址

集群名称:wasion-overseas-cluster

节点名称

wasion-overseas-1

wasion-overseas-2

wasion-overseas-3

地址

172.20.8.130

172.20.8.130

172.20.8.154

HTTP通信端口

9200

9202

9500

集群通讯端口

9400

9402

9400

候选主节点

数据节点

2)、配置信息

#集群名称

cluster.name: wasion-overseas-cluster

#节点名称

node.name: wasion-overseas-1

#节点ip地址

network.host: 172.20.8.130

#节点http通信端口

http.port: 9200

#集群通信端口

transport.tcp.port: 9400

#集群候选主节点列表

discovery.seed_hosts: ["172.20.8.130:9400", "172.20.8.130:9402", "172.20.8.154:9400"]

#默认启动主节点

cluster.initial_master_nodes: ["wasion-overseas-1"]

3)、查询集群情况

GET /_cluster/health

GET _cat/nodes?v

三、索引创建说明

PUT _template/kafka_topic

{

         "index_patterns":[

        "kafka_topic"

    ],

    "settings":{

        "number_of_shards": 5, #分片数量

        "number_of_replicas": 1, #副本数量

        "max_result_window": 5000

    },

    "mappings":{

        "properties":{

                            "id":{

                                     "type":"keyword",

                "index":"true"

                            },

            "name":{

                "type":"keyword",

                "index":"true"

            },

            "offset":{

                "type":"long",

                "index":"false"

            },

                            "sum":{

                "type":"long",

                "index":"false"

            },

            "partitionIdx":{

                "type":"long",

                "index":"true"

            },

                            "updateTime":{

                                     "type":"keyword",

                                     "index":"false"

                            }

                   }

    }

}

四、icon项目部署规划

每日最大数据量为:5760000(15分钟日冻结) + 120000 (日快照数据) + 60000 (月冻结数) = 5940000

单条数据平均大小:400B

每日数据总容量:5940000 * 400B = 2.2GB

每月总容量:66GB

三个分片,每个分片是22GB

五个分片,每个分片是13.2GB

得出结论数据按月分表,单索引总量为66G,数据5个分片,每个分片数据不会超过20G

集群各节点如下:

节点

mdr-0

mdr-1

mdr-2

地址

10.232.107.244

10.232.107.243

10.232.107.245

http通信端口

9200

9200

9200

集群通信端口

9300

9300

9300

候选主节点

数据节点

初始化主节点

ES数据存储地址

C:\MDR\elasticsearch-7.12.0

C:\MDR\elasticsearch-7.12.0

C:\MDR\elasticsearch-7.12.0

内存配置

-Xmx12g –Xms12g –Xmn6g

-Xmx12g –Xms12g –Xmn6g

-Xmx12g –Xms12g –Xmn6g

五、ES集群重启方案

1、停止数据分片,停止数据入库

PUT _cluster/settings?pretty

{

  "persistent": {

    "cluster.routing.allocation.enable": "all"

  }

}

2、重启节点

3、恢复数据分片与恢复数据入库

PUT _cluster/settings?pretty

{

  "persistent": {

    "cluster.routing.allocation.enable": "all"

  }

}

六、日索引合并至月索引方案

合并命令

POST _reindex?slices=9&refresh&wait_for_completion=false

{

  "source": {

    "index": "frozen_curve_20220201,frozen_curve_20220202,frozen_curve_20220203,frozen_curve_20220204,frozen_curve_20220205,frozen_curve_20220206,frozen_curve_20220207,frozen_curve_20220208,frozen_curve_20220209,frozen_curve_20220210,frozen_curve_20220211,frozen_curve_20220212,frozen_curve_20220213,frozen_curve_20220214,frozen_curve_20220215,frozen_curve_20220216,frozen_curve_20220217,frozen_curve_20220218,frozen_curve_20220219,frozen_curve_20220221,frozen_curve_20220222,frozen_curve_20220223,frozen_curve_20220224,frozen_curve_20220225,frozen_curve_20220226,frozen_curve_20220227,frozen_curve_20220228",

    "size": 5000

  },

  "dest": {

    "index": "frozen_curve_202202"

  }

}

执行合并之后,kibana会立即返回一个任务ID

根据如下命令查看任务进度
GET _cat/tasks?detailed=true&actions=*reindex

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/126605
推荐阅读
相关标签
  

闽ICP备14008679号