- 索引是一个包含多个文档的数据库,文档是可搜索的数据单元。
- 索引可以被看作是关系数据库中的数据库。
- 每个索引由多个分片(Shards)组成,分片是数据的物理副本。
4. **分片(Shards)**:
- 分片是索引的物理分割,用于提高数据的可扩展性和可用性。
- 分片可以分布在不同的数据节点上。
- 每个分片可以有一个或多个副本(Replicas),副本提供高可用性和负载均衡。
5. **映射(Mappings)**:
- 映射定义了索引中文档的结构和类型。
- 当你向索引中添加文档时,Elasticsearch 会根据映射的定义来解析文档。
6. **搜索(Search)**:
- Elasticsearch 支持丰富的搜索功能,如布尔搜索、范围搜索、聚合搜索等。
- 搜索请求通过 Elasticsearch 的 RESTful API 发送,并返回 JSON 格式的结果。
7. **副本(Replicas)**:
- 副本是为了提高数据的可扩展性和可用性而创建的数据分片的副本。
- 副本可以分布在不同的数据节点上,以实现数据的冗余和负载均衡。
8. **协调节点(Coordinating Node)**:
- 在多节点环境中,每个搜索请求都会被一个协调节点处理。
- 协调节点负责将搜索请求分发到相关的数据节点,并收集结果。
Elasticsearch 原理解析
Elasticsearch 的核心原理是基于 Lucene 的搜索引擎。下面是 Elasticsearch 的一些关键原理:
1. **文档索引**:
- 当向 Elasticsearch 索引中添加文档时,它会将文档转换为 Lucene 的索引格式。
- 索引包含文档的文本内容和元数据,如文档的 ID、类型和字段。
2. **倒排索引(Inverted Index)**:
- Lucene 使用倒排索引来存储索引数据,它是一种将单词映射到包含这些单词的文档的索引。
- 倒排索引使得搜索操作非常高效,因为你可以快速找到包含特定单词的文档。
3. **分片和副本**:
- 分片是数据的物理分割,用于提高数据的可扩展性和可用性。
- 副本提供数据的冗余和高可用性,当一个分片不可用时,Elasticsearch 可以使用副本来继续提供服务。
4. **搜索和查询**:
- 搜索请求通过 Elasticsearch 的 RESTful API 发送到协调节点。
- 协调节点将请求分发到相关的数据节点,并收集结果。
- Elasticsearch 支持丰富的查询语言,如布尔查询、范围查询和聚合查询。
5. **高可用性和负载均衡**:
- Elasticsearch 支持跨多个节点的搜索和数据存储,以实现高可用性和负载均衡。
- 主节点负责管理和协调集群中的节点,包括分配分片、处理集群级别的操作等。
- 数据节点负责存储数据和处理搜索请求,它们可以处理来自客户端的请求,也可以响应协调节点的搜索请求。
6. **自动发现和集群健康监测**:
- Elasticsearch 节点通过心跳机制自动发现集群中的其他节点。
- 集群健康监测机制可以监控节点的状态和集群的整体健康状况,如果发现节点故障,Elasticsearch 可以将故障节点的分片重新分配到健康的节点上。
7. **数据同步和更新**:
- 当文档被添加到 Elasticsearch 时,它首先被写入到主分片上。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**