33.ES集群规划—整体规划

集群规划

  • 集群大小设置的依据:
    • ES JVM heap 最大可以设置32G
    • 30G heap大概能处理10T 的数据量, 如果内存很大 如128G, 可以在一台机器上运行多个ES节点
  • 两类应用场景:
    • 用于构建业务搜索功能模块, 且多是垂直领域的搜索
      • 数据量级几千万到数十亿级别, 一般2-4台机器规模
    • 用于大规模数据的实时OLAP(联机处理分析),如ELK Stack, 数据规模可能达到千亿或更多
      • 几十到上百节点的规模
  • 集群节点的角色分配
    • 节点角色:
      • master : node.roles: [ master ]
      • DataNode: node.roles: [ data ]
      • Cordinating only node: node.roles: [ ]
  • 节点角色的分配:
    • 小规模集群, 不需严格区分
    • 重大规模集群,应考虑单独的角色充当, 特别是并发查询量大,查询的合并量大,可以增加独立的协调节点
  • 避免数据脏写
    • ES7集群自主控制主节点状况
      • 且在新版本中启动了一个新的集群时需要有cluster.initial_master_nodes 初始化集群列表
    • ES7中discovery.zen 配置失效, 新配置为:


  • 中大规模集群中常用的配置:
    • Master 和 DataNode 角色分离, 配置奇数个master
    • 延长ping master的等待时长: discovery.request_peers_timeout : 30 , 默认为3s, 其他节点ping主节点多长时间没有响应就认为主节点不可用
  • 索引分片数和副本数设置
    • 索引的分片数在创建索引的时候指定, 一旦创建不可修改
    • 分片设置的参考原则:
      • ES推荐的JVM对空间为30~32G, 所以把你的分片最大容量限制为30G, 然后再对分片数量做合理估算
      • 根据节点数按照1.5~3倍的原则来创建分片
      • 对于基于日期的索引需求, 且对索引数据的搜索场景非常少, 也许这些索引量很大, 但每个索引的数据量不大于1G , 对于这类场景, 建议只需要为索引分配1个分片
  • 分片设置副本:
    • 为保证高可用, 副本数量设置为2即可, 要求集群至少要有3个节点来分开存放主分片、副本
    • 如发现并发量大时, 查询性能会下降,可增加副本数,来提升并发查询能力
PUT /my_index_name/_settings
{
  "number_of_replicas": 2
}

大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(33.ES集群规划—整体规划)