Elasticsearch集群安装

本文详细介绍如何搭建Elasticsearch集群,包括配置三个节点的集群、预防脑裂现象、使用RBULLY算法进行主节点选举的过程,以及通过Head插件观察集群状态。同时,文章还解释了索引分片和副本的默认配置。

                          Elasticsearch集群安装


目录

                          Elasticsearch集群安装

一.配置搭建三个节点的集群

1.前提条件注意

2.配置集群的配置文件

1.每个节点指定协调器的list(elasticsearch.yml)

2.修改对应配置

3.防止集群发生"脑裂",为集群配置最大的有效master个数

3.启动集群的所有节点

1.类bully(RBULLY)算法将master选举出来(master参加)

2.先启动Head插件观察

3.启动第一个ES

4.启动成功,一直循环读取

5.启动第二个节点

6.启动成功

7.HEAD插件查看

8.启动第三个节点

9.启动成功

10.head查看

11.在进群中连接负载均衡器写入一些数据(index01,index02)


一.配置搭建三个节点的集群

1.前提条件注意

ik分词器(造成其他节点同步数据时,没有ik分词器的错误)保持一致;

如果你将ik分词器删除,保证之前使用ik分词器的所有相关数据(索引)也要删除.

  • [root@10-42-60-249 elasticsearch-5.5.2]# rm -rf data
  • [root@10-42-60-249 elasticsearch-5.5.2]# rm -rf *
  • [root@10-42-60-249 elasticsearch-5.5.2]# rm -rf logs/

2.配置集群的配置文件

  • 保证集群名称一致elasticsearch
  • 保证节点名称不一致es01 es02 es03

1.每个节点指定协调器的list(elasticsearch.yml)

每一个的名称都要不同

2.修改对应配置

3.防止集群发生"脑裂",为集群配置最大的有效master个数

公式: 所有master个数/2+1(过半数) 3个配置俩个即可

修改一下配置

由于网络波动,形成多个大脑指挥,

  • 在master集群中,本来应该互相有效通信的集群,出现波动后,形成2个多个master集群,同时操作dataNode节点们,可能造成执行的命令冲突导致数据错乱---集群的脑裂;
  • ES防止脑裂的出现,就是利用最小master数量过半定义的.
  • 结论:在ES防止脑裂的配置过半master后,集群无论如何出现脑裂的情况,至多只有一个有效的master集群满足最小master数量;

3.启动集群的所有节点

1.类bully(RBULLY)算法将master选举出来(master参加)

  • 1 启动的master节点到协调器获取集群所有master信息(id)
  • 2 如果activeMaster(正在提供主节点的信息list),有值,说明集群已经选举完毕master.如果有就选举完毕
  • 3 如果activeMaster中没有数据是空(获取断开剔除),没有值(节点信息),将会把从协调器获取的所有master信息放到后补list candidateMaster.
  • 4 判断candidateMaster里面存储的master节点数量是否满足最小master有效数量
  • 5 如果不满足,从新回到第一步
  • 6 如果满足,从里面将id值最小的master选举成为activeMaster的值

最终集群中activeMaster里的节点,就是被选举出来的主节点.

2.先启动Head插件观察

3.启动第一个ES

4.启动成功,一直循环读取

  • 1 启动的master节点到协调器获取集群所有master信息(id) 满足,因为初始设置的为主节点(因为只启动一个,只有一个主节点)
  • 2 如果activeMaster(正在提供主节点的信息list),有值,说明集群已经选举完毕master.如果有就选举完毕 不满足(刚启动,没有选举完毕,)
  • 3 如果activeMaster中没有数据是空(获取断开剔除),没有值(节点信息),将会把从协调器获取的所有master信息放到后补list candidateMaster.  满足  (有且只要一个)
  • 4 判断candidateMaster里面存储的master节点数量是否满足最小master有效数量 不满足(最小maste设置为2,目前只为1)
  • 5 如果不满足,从新回到第一步  不满足(重新获取)  
  • 6 如果满足,从里面将id值最小的master选举成为activeMaster的值  不执行

所以目前,只做一到四的循环读取

5.启动第二个节点

6.启动成功

  • 1 启动的master节点到协调器获取集群所有master信息(id) 满足,因为初始设置的为主节点(启动二个,有二个主节点)
  • 2 如果activeMaster(正在提供主节点的信息list),有值,说明集群已经选举完毕master.如果有就选举完毕 不满足(刚启动,没有选举完毕,)
  • 3 如果activeMaster中没有数据是空(获取断开剔除),没有值(节点信息),将会把从协调器获取的所有master信息放到后补list (防止一次放进多个)candidateMaster.  满足  (有二个)
  • 4 判断candidateMaster里面存储的master节点数量是否满足最小master有效数量 满足(最小maste设置为2)
  • 5 如果不满足,从新回到第一步  满足  
  • 6 如果满足,从里面将id值最小的master选举成为activeMaster的值  满足

所以目前,做一到六的读取  

7.HEAD插件查看

选出01做主节点

8.启动第三个节点

9.启动成功

因为选举已经结束,所以不会改变结果

10.head查看

11.在进群中连接负载均衡器写入一些数据(index01,index02)

#curl -XPUT http://IP:9200/index06

实现高可用,当01宕机.02,03 选举id最小的顶替,

  • 配置文件中的分片和副本默认值
  • index.number_of_shards: 5 
  • 设置索引的副本数,默认为1: 
  • index.number_of_replicas: 1 

index06在创建时,会经过master(activeMaster)根据配置文件计算

分片数量,副本数量,记录metadata 将索引数据切分到datanode

PS:分片无法控制,是选举的master负责分配


ES集群搭建完成

### 关于Elasticsearch集群安装完成后的置 当单个Elasticsearch节点安装完毕后,该节点会自动形成一个名为“elasticsearch”的新单节点集群[^1]。为了使这个节点成为更大集群的一部分,需修改位于 `$ES_HOME/config/elasticsearch.yml` 的置文件中的设置来指定集群名称和其他必要的参数[^2]。 #### 修改集群名称 要让多个节点组成同一个集群,必须确保它们共享相同的 `cluster.name` 设置。默认情况下,此值被设为 "elasticsearch";如果希望创建自定义命名的空间,则应编辑上述提到的YAML文件并更改该项: ```yaml cluster.name: my_custom_cluster_name ``` #### 设定节点角色 对于多节点环境来说,可以分特定的角色给各个成员以优化性能表现。比如通过如下方式指明某台机器仅作为数据存储单元而不参与协调请求处理工作: ```yaml node.master: false node.data: true ``` 以上两行分别控制着当前实例是否有资格竞选为主控服务器以及是否负责保存索引文档资料。 ### 验证集群状态的方法 一旦完成了基本设定之后,可以通过RESTful API接口查询整个系统的健康状况概览信息。具体命令如下所示,在这里假设目标地址为本地主机且监听端口保持不变(9200): ```bash curl -X GET "localhost:9200/_cat/health?v=true" ``` 这条指令将会返回有关集群整体运行情况的关键指标,包括但不限于活动分片数量、未分副本数目等重要细节。 另外一种常用手段就是利用Kibana图形界面工具来进行更直观的状态监测与管理操作。只需启动对应的服务进程,并访问浏览器内的相应URL即可轻松实现这一目的。 ### 解决常见问题指南 有时可能会遇到某些棘手的技术难题阻碍正常使用体验。下面列举了一些典型场景及其对应的解决方案: - **无法加入预期集群**:确认所有参与者均采用一致性的网络标识符(`network.host`) 和版本号(version),并且防火墙策略允许TCP通信发生在预期内部IP范围之间。 - **磁盘空间不足警告**:调整JVM堆大小限制或是增加物理硬盘容量均可有效缓解此类报警现象的发生频率。同时建议定期清理无用日志记录减少不必要的资源占用率。 - **慢查询响应时间过长**:考虑启用缓存机制提高命中概率从而加快检索速度;或者重新评估映射结构设计思路使之更加贴合实际业务需求特点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值