ElasticSearch6.5.4集群搭建

ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。默认情况下是一个索引5个主分片,每个主分片对应一个副分片。如果是单节点ES,可以用GET _cat/health查看ES集群健康值。显示为yello,因为副分片无法分配,副分片和主分片不能在同一机器上,如果该机器宕机,那么这个副分片就毫无意义。

  1. GET _cat/health
  2. 搭建ES集群3台机器
  3. 节点名称 IP地址
    node-1 192.168.184.133
    node-2 192.168.184.135
    node-3 192.168.184.136
  4. 参考单机版安装:https://blog.csdn.net/qq_39669058/article/details/86314632

  5. 修改3台机器的ES机器配置为相同,看看单个独立能不能起来,再修改为ES集群配置

  6. 如图启动成功

  7. 3台节点搭建ES集群相关配置

  8. vim  elasticsearch.yml

  9. cluster.name: my-application  //该3个ES节点的集群名称必须相同

  10. node.name:node-1  //每个节点名称不能相同,另外两台分别为node-1 ,node-2

  11. discovery.zen.ping.unicast.hosts: ["192.168.184.133", "192.168.184.135","192.168.184.136"]   //将所有节点discovery.zen.ping.unicast.hosts的 []里面的地址修改为所有节点的IP,","除了逗号不要有空格

  12. discovery.zen.minimum_master_nodes: 2    //默认是1,3台节点建议修改为2,防止ES脑裂

  13. 如何防止elasticsearch的脑裂问题

  14. 查看集群效果

  15. http://192.168.184.133:9200/_cat/nodes?pretty

  16. 192.168.184.135   node-2是主节点

  17. 查看集群状态为green

  18. http://192.168.184.133:9200/_cat/health

  19. 把135停掉,下图显示133 node-1是主节点

  20. 把133听到,如图发送请求到136,显示请求失败

  21. 单机节点不能处理请求,因为设置了discovery.zen.minimum_master_nodes: 2,这样用复制分片来构建高可用性失效了,因为在每台机器上都存放着一个索引的完整数据,只不过有的是以副本的形式存在

  22. 重新启动133,135,显示133,135加入集群

  23. 如果discovery.zen.minimum_master_nodes设置为2了,两节点集群可以有效的避免脑裂,但是高可用就废了,如果3节点集群设置为2可以减少脑裂的可能性,又能提高ES集群的高可用性

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_39669058/article/details/86680832