es集群部署方案

节点类型

  • 不同角色的节点
    • Master eligible / Data / Ingest / Coordinating / Machine Learning
    • 在开发环境中,一个节点可承担多种角色
  • 在生产环境中
    • 根据数据写入量,写入和查询的吞吐量,选择合适的部署方式
    • 建议设置单一角色的节点(dedicated node)

节点参数配置

节点类型 配置参数 配置参数
master eligible node.master true
data node.data true
ingest node.ingest true
coordinating only node.master 设置上面参数全部为false
machine learning node.ml true(需要enable x-pack)

单一职责的节点

节点类型 配置参数
master节点 node.master: true
master节点 node.ingest: false
master节点 node.data: false
data节点 node.master: false
data节点 node.ingest: false
data节点 node.data: true
ingest节点 node.master: false
ingest节点 node.ingest: true
ingest节点 node.data: false
coordinate节点 node.master: false
coordinate节点 node.ingest: false
coordinate节点 node.data: false

单一角色:职责分离的好处

  • Dedicated master eligible nodes:负责集群状态(cluster state)的管理
    • 使用低配置的CPU,RAM和磁盘
  • Dedicated data nodes:负责数据的存储及处理客户端请求
    • 使用高配的CPU,RAM和磁盘
  • Dedicated ingest nodes:负责数据处理
    • 使用高配置CPU:中等配置的RAM;低配置的磁盘

Dedicate Coordinating Only node(Client Node)

  • 配置:将Master,Data,Ingest都配置成false
    • Medium / High CPU; Medium / High RAM; Low Disk
  • 生产环境中,建议为一些大的集群配置Coordinating Only Nodes
    • 扮演Load Balancers。降低Master和Data Nodes的负载
    • 负责搜索结果的Gather/Reduce
    • 有时候无法预知客户端会发送怎么样的请求
      • 大量占用内存的聚合操作,一个深度聚合可能会引发OOM

Dedicate Master Node

  • 从高可用 & 避免脑裂的角色出发
    • 一般在生产环境中配置3台
    • 一个集群只有一台活跃的主节点
      • 负责分片管理,索引创建,集群管理等操作
  • 如果和数据节点或者Coordinate节点混合部署
    • 数据节点相对有比较大的内存占用
    • Coordinate节点有时候可能会有开销很高的查询,导致OOM
    • 这些都有可能影响Master节点,导致集群的不稳定

基本部署:增加节点,水平扩展

  • 当磁盘容量无法满足需求时,可以增加数据节点;磁盘读写压力大时,增加数据节点
    • Coordinating 4台
    • Data 8台
    • Master 3台

水平扩展:Coordinating Only Node

  • 当系统中有大量的复杂查询及聚合查询时候,增加Coordinating节点,增加查询的性能
  • 在Coordinating前面添加LoadBalance
    es集群部署方案_第1张图片

读写分离

es集群部署方案_第2张图片

在集群中部署Kibana

es集群部署方案_第3张图片

异地多活部署

集群处在三个数据中心;数据三协;GTM分发读写请求
es集群部署方案_第4张图片
原文链接:https://blog.csdn.net/mnasd/article/details/122522283

你可能感兴趣的:(es,elasticsearch,big,data,大数据)