Elasticsearch——集群搭建

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 个人学习笔记——ES

基本概念

比如有一个索引有3个主分片和3个副本分片,目前有3台服务器,那么主分片以及副本分片会有ES自己内部去分配具体哪个分片在哪台服务器上。同一个主分片和副本分片不会同时存在于同一台服务器节点,这是不允许的,因为一旦宕机,那么这个分片里的数据就都丢失了。

搭建集群

从原先的ES虚拟机克隆三台机器,然后进入到ES的data目录下删除nodes文件

同时修改三台es配置的cluster.name

再将node.name分别改为es-node1,es-node2,es-node3

为三台ES添加如下配置:

# 主节点,true代表在未来可能成为主节点,false就不会
node.master: true
# 数据节点,主要针对文档的处理(增删改查)
node.data: true


为三台ES配置集群的IP
discovery.seed_hosts
cluster.initial_master_nodes,这个配置不用改动,因为这是默认初始化的一台主节点,就是cluster1

查看配置的信息

more elasticsearch.yml  | grep ^[^#]


启动三台ES
可以在cluster1中看到日志的输出,cluster2和cluster3加入了集群

通过可视化工具可以查看当前集群情况,标记★的表示主节点。

集群脑裂


集群发生脑裂是由于原先master发送宕机之后,重新选举一台master之后,宕机的master重新恢复,单独成为了一个不完整的集群,也就是一个集群中出现了两个master。
造成这个问题的原因是由于 最小投票人数(discovery.zen.minimum_master_nodes) 导致的,该配置默认值是1,所以宕机的master默认就是选举中的一个,所以他恢复之后成为了master。
discovery.zen.minimum_master_nodes = (N/2)+1
N的值是由ES中的node.master:true所决定的,只有这个配置为true,在算作一个基数。

这个问题在ES 7.X版本之前存在,7.X之后这个配置项已移除,选举都交由ES来完成。

文档读写原理

写原理

  1. 比如请求命中集群中的某一台节点,那么这个节点就被认为是ES集群中的协调节点(用户接收用户请求);
  2. ES内部根据算法(hash算法)去决定本次操作的数据要写到那个分片中,起到一个路由转发的作用;
  3. 主分片写入数据之后,把数据同步给副本分片;
  4. 副本分片也写入完毕之后,把请求回给协调节点;
  5. 协调节点接收到内部处理完毕之后,响应客户端。

读原理

  1. 同样请求也是落到某一台节点上,这个节点成为协调节点;
  2. ES根据内部算法(hash算法)去匹配到应该到那个主分片(副本分片)读取数据;
  3. 数据读取完毕之后,告知协调节点;
  4. 响应客户端。
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
272 1
|
3月前
|
存储 负载均衡 Java
Elasticsearch集群面试系列文章一
【9月更文挑战第9天】Elasticsearch(简称ES)是一种基于Lucene构建的分布式搜索和分析引擎,广泛用于全文搜索、结构化搜索、分析以及日志实时分析等场景。
117 7
|
4月前
|
存储 缓存 监控
|
1月前
|
存储 监控 安全
Elasticsearch 集群
【11月更文挑战第3天】
103 54
|
6天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
21 0
|
1月前
|
缓存 监控 Java
Elasticsearch集群JVM调优
Elasticsearch集群JVM调优
46 5
|
1月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
49 1
|
1月前
|
监控 Java 测试技术
Elasticsearch集群JVM调优垃圾回收器的选择
Elasticsearch集群JVM调优垃圾回收器的选择
54 1
|
1月前
|
监控 安全 网络安全
Elasticsearch集群的网络设置
Elasticsearch集群的网络设置
36 3
|
1月前
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
71 4