HoRain云--elasticsearch集群等概念入门

  

🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

1. 核心概念

1.1 集群(Cluster)

1.2 节点(Node)

1.3 索引(Index)

1.4 分片(Shard)

1.5 文档(Document)

2. 集群工作原理

2.1 数据写入流程

2.2 搜索流程

3. 集群健康状态

4. 集群设计建议

4.1 分片策略

4.2 节点角色分配

4.3 高可用性

5. 基本操作示例

5.1 查看集群信息

5.2 创建索引

5.3 插入文档

5.4 搜索文档

6. 常见问题

6.1 分片过多

6.2 节点扩容

总结


img


1. 核心概念

1.1 集群(Cluster)
  • 定义:由多个节点(Node)组成的逻辑单元,共同存储数据并提供搜索、分析服务。
  • 特点
    • 高可用性:节点故障时,数据副本自动接管。
    • 水平扩展:通过增加节点扩展存储和计算能力。
1.2 节点(Node)
  • 定义:集群中的单个服务器,承担不同角色:
    • 主节点(Master Node):管理集群元数据(如索引创建、分片分配)。
    • 数据节点(Data Node):存储分片数据,执行搜索和聚合操作。
    • 协调节点(Coordinating Node):接收客户端请求,转发到数据节点并汇总结果。
    • Ingest 节点:预处理数据(如解析日志)。
1.3 索引(Index)
  • 定义:类似数据库中的“表”,是文档的集合。
  • 特点
    • 分片(Shard):索引被拆分为多个分片,分布在不同节点(提高性能)。
    • 副本(Replica):每个分片的副本,提供冗余和故障恢复。
1.4 分片(Shard)
  • 主分片(Primary Shard):数据写入的目标分片,数量在索引创建时固定。
  • 副本分片(Replica Shard):主分片的拷贝,可动态调整数量。
1.5 文档(Document)
  • 定义:数据的基本单元,以 JSON 格式存储。
  • 唯一标识:由 _index(索引名)、_id(文档ID)定位。

2. 集群工作原理

2.1 数据写入流程
  1. 客户端向协调节点发送文档。
  2. 协调节点通过哈希算法确定目标分片(如 doc_id % 主分片数)。
  3. 数据写入主分片后,同步到副本分片。
2.2 搜索流程
  1. 客户端向协调节点发送查询请求。
  2. 协调节点将请求转发到所有相关分片(主或副本)。
  3. 各分片执行查询,返回结果给协调节点汇总。

3. 集群健康状态

通过 GET /_cluster/health 查看:

  • Green:所有主分片和副本分片正常。
  • Yellow:主分片正常,但部分副本未分配(可能节点不足)。
  • Red:有主分片未分配(数据可能丢失)。

4. 集群设计建议

4.1 分片策略
  • 主分片数:在创建索引时指定,后续不可修改。建议根据数据量和硬件综合评估(通常每分片 10-50GB)。
  • 副本分片数:动态调整,默认1(至少1个副本保证高可用)。
4.2 节点角色分配
  • 生产环境:分离主节点和数据节点,避免资源竞争。
    # elasticsearch.yml 配置示例
    node.master: true   # 主节点
    node.data: false    # 非数据节点
    
4.3 高可用性
  • 最少节点数:主节点数应为奇数(如3、5),避免脑裂(split-brain)。
  • 跨机架/可用区部署:防止单点故障。

5. 基本操作示例

5.1 查看集群信息
GET /_cluster/state
GET /_cat/nodes      # 查看节点列表
5.2 创建索引
PUT /my_index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  }
}
5.3 插入文档
POST /my_index/_doc/1
{
  "title": "Elasticsearch Guide",
  "content": "A beginner's tutorial."
}
5.4 搜索文档
GET /my_index/_search
{
  "query": {
    "match": { "title": "Elasticsearch" }
  }
}

6. 常见问题

6.1 分片过多
  • 问题:分片过多会导致元数据膨胀,影响性能。
  • 解决:合并小索引或使用 _shrink API 减少分片。
6.2 节点扩容
  • 垂直扩容:升级节点硬件(CPU、内存)。
  • 水平扩容:添加新节点,分片自动均衡。

总结

  • 集群是 Elasticsearch 实现分布式能力的核心。
  • 分片和副本是平衡性能与高可用的关键。
  • 合理设计分片数、节点角色和集群拓扑是运维重点。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值