Elasticsearch的基本概念是什么呢
本篇文章给大家分享的是有关Elasticsearch的基本概念是什么呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联专注于阿拉山口企业网站建设,自适应网站建设,商城网站建设。阿拉山口网站建设公司,为阿拉山口等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
以 Elasticsearch 7.9.2 为准。
文档和索引面向开发者,是逻辑概念;节点、分片、集群面向运维,是物理概念。
文档
一个文档理解为一个 JSON 对象即可。文档是 ES 中存储、搜索的最小单位。
文档均有自己的 id,形式为一个整数,可以自己指定,也可以由 ES 生成。
文档的常见样子:
{ "_index": "myindex", "_type": "doc", // es7 开始,这里必须是 doc "_id": "YmYJdj888", "_score": 0.2876333, "_source": { "foo": "astr", "bar": "bstr", "biz": [ "book", "cat" ] } }
其中,_source 字段保存文档原始内容,其他字段为文档元数据。
_index 表示它属于那个索引,_id 表示文档的 id。其他字段后面再说。
索引
所以是文档和集合。类似于关系型数据库中的表。
一词多义,索引:
(ES 中)名词,表示文档的集合
(ES 中)动词,表示将文档放入 ES (例:将某文档索引到 ES 中)
(抛开 ES)名词,表示查找标记(例:这个数据库用 B+ 树实现索引)
索引中的文档被分散在分片(shard)上。
节点
一个 ES 节点指的是一个 ES 程序运行实例,其实就是个 Java 进程。
生产环境中,一台机器只运行一个实例。
每一个节点都有名字,通过配置文件指定,或在启动时加参数
-E node.name=foo
节点启动后,会分配 UID,保存于 data 目录下。
集群
ES 是分布式软件,不同角色的节点组成集群,以提供如下特性:
可用性:
服务可用:允许少数节点不可用
数据可用:损坏少数节点时数据不丢失
可扩展:可以不断增加机器。
集群:
不同集群通过名字区分,默认的集群名为 elasticsearch。集群名通过配置文件指定或在命令行中 -E cluster.name=myc 指定。集群中有 >= 1 个节点。
集群中节点的角色:
master eligible:可被选举为 master。master 主要负责索引的创建和删除,决定分片分到哪里,维护和更新集群的状态。
data:存放数据。
ingest:数据进来之前进行过滤。
协调者(coordinating):与客户端打交道的节点。客户端的请求都是先到协调者这里,再由协调者在后面忙活,然后把结果返回给客户端。
机器学习:负责机器学习。需要开启 X-Pack 插件。
节点角色 | 参数 | 默认值 |
---|---|---|
master eligible | node.master | true |
data | node.data | true |
ingest | node.ingest | true |
协调者 | 无 | 不涉及 |
机器学习 | node.ml | true |
任何节点都一定是协调者,如果要把某节点设置为只充当协调者,则只需且必须把其他的 4 个参数都设为 false。
生产环境中,每个节点应该只充当一个角色。如果数据量小,酌情让部分节点兼职。
生产环境中,应该只对外保留协调者的地址。
分片与副本
索引有 >=1 个分片,每个分片有 1 个主分片和 >=0 个副本分片。
例如,对于索引 myindex,分片数设为 3,副本数设为 1,则总数据片个数为 3*(1+1)=6。一般的,某索引分片数为 n,副本数为 m,则总数据片个数为 n(m+1)。
一个文档放到某索引后,文档会被放入某个主分片和这个主分片对应的所有副本分片。主分片及其对应的副本分片必须在互不相同的节点上,但主分片之间不必如此。
例如,索引 myindex,分片数设为 3,副本数设为 1。3 个主分片记为 P0、P1、P2,对应的副本分片记为 R0,R1,R2。给 3 台机器,则数据片的分布可能为:
(P0 R2) (P1 R0) (P2 R1),
如果只给 2 台机器,则则数据片的分布可能为:
(P0 P1 R2) (P2 R0 R1),
如果只给 1 台机器,则则数据片的分布可能为:
(P0 P1 P2),
此时,ES 无法创建副本分片,此时集群可用但非高可用。
索引的分片数设定后不可修改,如果需要修改必须重新建索引。副本数可以动态调整。
适当增加分片数可以避免单个数据片过大,也增加了对机器的可伸缩性。适当增加副本数可以提高性能和吞吐量。
以上就是Elasticsearch的基本概念是什么呢,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
文章题目:Elasticsearch的基本概念是什么呢
路径分享:http://scjbc.cn/article/gsigcp.html