基本概念

最近更新时间:2020-03-02 16:05:32

集群(Cluster)

集群是一个或多个节点(服务器)的集合,这些节点共同保存整个数据,并在所有节点上提供联合索引和搜索功能。

节点(Node)

一个节点是集群中的一个服务器,用来存储数据并参与集群的索引和搜索。KES区分了四种节点类型,如下:

  • 数据节点(Data Node),存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等。数据节点对cpu,内存,io要求较高,在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。如果集群中只有数据节点,系统会默认3台作为主节点。

  • 专有主节点(Master Node),为确保一个集群的稳定,分离主节点和数据节点,独立出3台机器担当主节点。主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。在大规模集群中,开启专有主节点,可增强集群的稳定性。

  • 协调节点(Coordinator Node),该节点只处理路由请求,处理搜索,分发索引操作,相当于一个智能负载平衡器,协调节点将请求转发给存储数据的Data Node。每个Data Node在本地执行请求,并将结果返回协调节点。协调节点收集完数据后,将每个数据节点的结果合并为单个全局结果。

  • 冷数据节点(Warm Node),这种类型的节点被用于存放只读并且很少被查询的索引。与之区别,热数据节点存放查询频率高,时间较近的数据索引,写入压力大,这样实现冷热分离,在提升查询和写入效率的同时降低存储成本。

索引(Index)

索引是有相同特性的文档集合,(相当于关系型数据库里的一个数据库)。它是我们存储和索引关联数据的地方。一个索引通常使用一个名称(所有字母必须小写,不能以下划线开头,不能包含逗号)来标识,当针对这个索引的文档执行索引、搜索、更新和删除操作的时候,这个名称被用来指向索引。

类型(type)

一个类型通常是一个索引的一个逻辑分类/分区,允许在一个索引下存储不同类型的文档(相当于关系型数据库中的一张表),在Elastic 6.x 版本,只允许每个 Index 包含一个 Type,在Elastic 7.x 及以后版本中Type概念被删除。

文档(document)

一个文档是可以被索引的基本信息单元(相当于关系型数据库中的一行数据)。文档可以用JSON格式来表示。在一个索引中,您可以存储任意多的文档,且文档必须被索引。

映射(Mapping)

模式映射(相当于关系型数据库中的schema)用于定义索引结构。Elasticsearch在映射中存储有关字段的信息。映射在文件中以JSON对象传送。

字段(Field)

字段是ElasticSearch里的最小单元,相当于数据的某一列,类似于json里一个键。

分片(Shards)

索引分片,当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端请求等,一个节点不够的情况下, Elasticsearch可以把一个完整的索引分成多个分片,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

副本(Replica)

Elasticsearch可以设置多个索引分片的副本,副本具有以下作用:

  • 提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。
  • 提高Elasticsearch的查询效率,Elasticsearch会自动对搜索请求进行负载均衡。

金山云,开启您的云计算之旅

免费注册