Skywalking安装教程二:安装Elasticsearch
SkyWalking使用Elasticsearch来存储监控数据,因此需要提前安装Elasticsearch。可以从Elasticsearch官网下载对应版本的安装包,然后按照官方文档进行安装和配置。
ES原理
索引原理
用户向 ES提交 JSON 格式的文档,每个文档都有一个唯一的标识符(_id)。文档在提交时会被解析,并根据映射(mapping)文件来确定字段的类型。映射文件定义了索引中文档的结构和字段属性。ES使用分析器(analyzer)对文本字段进行分词处理,将其拆分成一系列的词汇单元(tokens)。不同的分析器有不同的分词规则,可以根据需要选择或自定义分析器。分词后的词汇单元会被转换成倒排索引(inverted index),这是 ES搜索效率高的核心原因之一。每个词汇单元都指向包含该词汇的所有文档。
存储原理
每个索引被划分为多个分片(shards),每个分片都是 Lucene 索引的实例。分片可以跨多个节点分布,这样可以实现水平扩展。为了提高数据的可靠性和可用性,Elasticsearch 允许为每个分片创建一个或多个副本(replicas)。副本是主分片的完整拷贝,可以在主分片不可用时提供服务。ES使用事务日志(translog)来保证数据的持久性。每次写入操作都会被记录在事务日志中,直到数据被刷新到磁盘上的段文件中。
查找原理
客户端发送搜索请求到 Elasticsearch,请求中包含查询条件。Elasticsearch 将查询请求分发到所有相关的分片上。每个分片都会返回符合条件的结果给协调节点。协调节点收集各个分片返回的结果,并根据查询要求对结果进行排序和过滤。最终,协调节点将处理好的结果返回给客户端。
分布式架构
节点角色
主节点:负责集群级别的变更,如创建或删除索引、更新集群状态等。
数据节点:负责存储数据和执行搜索请求。
协调节点:处理客户端请求,但不直接存储数据。协调节点可以将请求转发给适当的数据节点。
集群健康
选举机制:通过 Raft 或其他一致性算法来选举主节点。
健康检查:Elasticsearch 会定期检查集群状态,并根据分片的可用性报告集群的健康等级(绿色、黄色或红色)。
性能优化
缓存机制
**查询缓存:缓存频繁使用的查询结果,减少重复计算。
**字段数据缓存:缓存经常用于排序或聚合的字段数据。
刷新机制
刷新:Elasticsearch 会定期将内存中的数据刷新到磁盘,以确保数据的持久性。
ES安装过程
系统配置要求
CPU:至少四核处理器,对于较大的集群或处理复杂查询的情况,建议使用更多核心的处理器。
内存:至少 8 GB RAM 或更多。Elasticsearch 是内存密集型应用,内存大小直接影响到性能。对于生产环境,建议根据实际数据量和并发请求量来决定内存大小。
磁盘:至少 10 GB 的可用硬盘空间。使用 SSD(固态硬盘),因为 SSD 可以提供更高的 I/O 性能。对于存储大量数据的情况,建议有足够的磁盘空间,并考虑 RAID 配置以提高可靠性和性能。
安装步骤
Github地址
https://github.com/elastic/elasticsearch