elasticsearch介绍

1.前言

elasticsearch是一个开源的分布式搜索和分析引擎,它被广泛用于构建实时的、可扩展的搜索和分析应用程序,主要作用是存储、搜索和分析大量的数据。它使用一种被称为倒排索引的数据结构来实现快速的全文搜索功能。倒排索引是一种将文档中的每个单词与包含该单词的文档进行关联的数据结构,这使得Elasticsearch能够高效地执行全文搜索、短语匹配、近似搜索和聚合等操作

2.功能

全文搜索:Elasticsearch提供强大的全文搜索功能,可以处理大量的文本数据,并返回与搜索查询匹配的相关结果。它支持复杂的查询语法和高级搜索功能,如模糊搜索、多字段搜索、布尔搜索等

实时数据分析:Elasticsearch能够接收和索引大规模的实时数据,并提供快速的分析和聚合能力。它支持复杂的聚合操作,如平均值、最大值、最小值、分组统计等,使用户可以轻松地对数据进行深入分析

分布式和可扩展性:Elasticsearch采用分布式架构,数据可以在多个节点上进行分片和复制,以实现高可用性和横向扩展能力。这使得它可以处理大规模的数据集,并处理高并发的搜索和分析请求

实时数据同步:Elasticsearch支持实时数据同步和更新。当数据发生变化时,它能够快速地将新的或更新的数据索引到适当的位置,以保持索引与源数据的同步

日志和事件管理:Elasticsearch广泛应用于日志和事件管理领域。它可以集成日志收集工具(如Logstash)来实时索引和分析大量的日志数据,以便进行故障排除、监控和安全分析等任务

3.集群模式介绍

架构

在elk中,elasticsearch的集群节点分为master节点和data节点,如果将master功能与data功能分离,则master节点就不会存储数据,只负责管理集群、计算分片的分配、调度数据到分片,而data节点就只负责存储数据,使用此架构master节点主机可以用低一点的配置,data节点需要高一点的配置,不过还是建议将master和data功能都复合到一个节点上去构建集群

小型架构使用master和data功能复合到节点的方式,部署一主两从,当主节点宕机时,集群会在从节点中重新选出主节点,并重新均衡分配所有索引的分片,只有节点拥有master功能才能参与主节点的选举,否则就只是数据存储节点,它将不参与主节点的选举过程,也不具备主节点的职责和功能。这样的节点被称为"非候选主节点"或"非主节点"

以下是主节点功能的详解

集群管理:主节点负责管理整个Elasticsearch集群的状态和拓扑结构。它维护集群级别的元数据,包括索引、分片分配和副本分片的分布等信息。主节点通过与其他节点进行协调和通信,确保集群的稳定性和一致性。

分片分配:主节点负责监视和协调分片的分配和重新分配过程。当新的索引被创建时,主节点决定将索引的分片分配给哪些节点,并负责监控分片的状态。它会检测节点的可用性和负载情况,并根据需要进行分片的重新分配,以保持集群的负载均衡。

节点管理:主节点负责监视集群中的所有节点的状态。它会检测节点的加入和离开,并处理节点的故障检测和故障转移。当节点发生故障或离线时,主节点会重新分配该节点上的分片,以确保数据的可用性和一致性。

集群状态维护:主节点负责维护集群的整体状态。它会监控节点之间的通信,并协调集群中的各种操作,如索引的创建和删除、节点的添加和移除等。主节点还负责决策和执行集群级别的操作,如集群的重启和扩容

分片

集群中增加节点、减少节点、节点宕机,master都会将所有索引的分片重新均衡分配到所有节点上,但如果某索引的分片数量大于集群节点数量,则只会分配节点数量的分片到节点中,多出的则空余失效,已通过实验验证,可以看一下以下图片中的分片在三个节点分配的是比较均衡的

 

对于集群中的索引分片,主分片只能在创建索引的时候去规定数量,在索引创建后是无法更改主分片数量的,而副本分片在创建索引后依然可以更改副本分片的数量,副本分片作为主分片的备份,在主分片出问题时,会从副本分片自动选主,当查询请求到达Elasticsearch集群时,查询操作会涉及到所有相关的主分片和其对应的副本分片,通过这种方式,副本分片参与了查询过程,并与主分片协同工作以提供更高的吞吐量和可靠性

工作流程:当查询请求到达Elasticsearch时,它将被路由到主分片上进行处理。主分片负责处理写入操作,并协调查询过程。一旦主分片接收到查询请求,它会将查询请求发送给其所有的副本分片。副本分片会在其本地数据上执行查询操作,并将结果返回给主分片。主分片会收集并整合所有副本分片返回的结果,并将最终结果返回给客户端

集群监测

使用Elasticsearch Head可以监测elasticsearch集群的状态、索引、分片等,还提供数据查询功能,Elasticsearch Head可以通过谷歌浏览器的商店直接添加插件的方式添加在谷歌浏览器中,也可以下载安装包,安装在主机上

 

点击new增加集群任意节点地址后就能看到集群信息了,可以看到每个索引分片的分布情况,星星的标志即集群的主master节点

集群状态

Green(绿色):表示集群正常运行,并且所有分片都分配在至少一个节点上。这是最理想的状态,表示集群健康

Yellow(黄色):表示集群处于可用状态,但某些分片的复制品尚未分配到足够数量的节点上。这可能是因为节点故障或新节点加入集群导致的分片重新分配尚未完成。虽然数据仍然可用,但缺少冗余备份

Red(红色):表示集群处于不可用状态,至少有一个分片没有分配到任何节点上。这可能是由于节点故障、分片丢失或索引损坏等原因导致的。在这种状态下,集群无法提供正常的读写操作

Unassigned(未分配):表示分片尚未分配到任何节点上。这可能是由于刚刚创建的索引、节点故障或重新平衡操作等原因导致的。在这种状态下,分片数据不可用

Initializing(初始化中):表示正在初始化分片。当新的分片被创建或重新分配时,它们会进入初始化状态,直到数据完全复制到目标节点并准备就绪

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值