ElasticSearch: 核心知识篇-概要

目录

一. 节点

二. 角色

​编辑

1. 主节点( active master  *)

2. 候选节点/投票节点 (master eligible  缩写m) 

3. 仅投票节点(voting_only  缩写 v)

4. 数据节点  (data  缩写 d)

5.   预处理节点(Ingest  缩写 i)

6. 候选客户端节点 (remote_cluster_client  缩写 r)

三. 索引

四. 类型

五. 文档

六. 集群

七. 分片


一. 节点

1. 概念:  节点是指elasticsearch的一个实例, 可以理解为一个elasticsearch的进程。

               一个节点 ≠ 一台机器, 一个机器上可以同时启动多个节点。注意在一台机器上启动多个

               节点时, 注意使用不同端口, 避免端口冲突。

    如图: 以下为elasticsearch启动的节点

http://IP:PORT

   

二. 角色

官方文档-节点

#查看节点属性, v代表着以vip身份查看
GET _cat/nodes?v

1. 主节点active master  *)

     一般在日常口语中说的master就是 active matser 而非 候选节点 master eligible。主节点在一 个集群中只能有一个,负责管理整个集群。在matser节点宕机后,其他候选/投票节点会重新选  举出一个 主节点。

    如上图所示: node-1/2/3的角色都有m, 代表所有节点都为候选节点,但只有node-2被真正选      举为了 主节点 active master,被选举为主节点后 “master” 属性为 * 。

2. 候选节点/投票节点 (master eligible  缩写m) 

     默认情况下, master eligible节点是在集群状态发布或初始化期间参与选举及完成某些任       务的 节点,配置了matser的节点都是有效的投票节点,也可以参与选举(被选举为主节点)

     任何不是仅投票节点的 matser节点都可以在选举过程被推选为主节点

     如上图, 所有节点都拥有候选节点的角色

3. 仅投票节点(voting_only  缩写 v)

      严格来说 voting_only不能单独作为一个角色使用,  需要和matser一起使用, 当节点配置配置了voting_only后, 该节点在集群选举过程中仅具备投票权利, 并不能被选举为主节点.

      如上图,  node-3即为仅投票节点

4. 数据节点  (data  缩写 d)

     见名知意, 该节点主要用来存储数据,  包含了已编入索引的文档分片及副本。另外,数据节点   还要承担数据操作的职责, 如CRUD,查询,聚合等等。这些操作都是IO密集型, 内存密集         型, CPU密集型。 我们需要随时监控资源, 在资源过载时及时添加新节点尤为重要。

     如上图, 三个节点均为数据节点。

5.   预处理节点(Ingest  缩写 i)

      预处理节点有点类似于 logstash中的管道,所以也会叫他 ingest pipeline。常用于在数据写入前进行的一些预先处理,如去掉空格,split,格式规范化等等。

       如上图, node-1及node-2 为预处理节点

6. 候选客户端节点 (remote_cluster_client  缩写 r)

     具备该角色的节点,可以充当其他集群的远程客户端

     该角色在如下功能中必须配置

  • 跨集群搜索
  • 跨集群复制
  • 通过公网地址访问节点                

三. 索引

官方文档-索引

1.  概念:  ElasticSearch中索引(index)的作用等价于Mysql中表(table)。索引声明了数据的字段名称,  字段类型等,与table类似。 但不同的是,elasticsearch在数据写入前不绝对需要提前建立好索引,es提供了自动映射器来自动完成字段映射,但值得注意的是,索引一旦建立映射则无法修改, 在工作中尽量提前建立好索引在进行数据写入。

 2.  product索引的组成部分:

        为方便大家查看, 此处为折叠的简易信息, 若想了解详细信息, 可看下面代码。

aliases索引别名, 可以为索引设置一个或多个别名,也可为多个索引设置通一个别名。
mapping映射。声明了索引包含哪些字段, 字段名称,长度, 评分,分词器等
setting索引设置, 常用设置如分片及副本数量等
#查看索引
GET /product

#结果
{
  "product" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "createtime" : {
          "type" : "date"
        },
        "desc" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "lv" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "name" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "price" : {
          "type" : "long"
        },
        "tags" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "type" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        },
        "number_of_shards" : "1",
        "provided_name" : "product",
        "creation_date" : "1692791625243",
        "number_of_replicas" : "1",
        "uuid" : "5gXxgSaNSxal7mKg82w33g",
        "version" : {
          "created" : "8010099"
        }
      }
    }
  }
}

四. 类型

概念:  类型这个概念在7.x 之后已被删除, 这里的类型指的是索引的类型而非字段的类型。但在ES中仍保留有相关语法,因此类型的概念还需要大家有一个初步的认知。

五. 文档

1. 概念: 在elasticsearch中, 一个文档即一条数据,是最小的存储单元,大家可以理解为mysql中的一行数据。 在elasticsearch中, 数据是以json的格式存储的。

2. 组成结构:

  • 元数据: 可以理解为系统相关字段, 每条数据都是默认拥有这些字段
  • 业务字段: 即我们在开发中定义的数据

六. 集群

1. 概念:  集群是多个elasticsearch节点组成,提供了elasticsearch的高可用, 高性能, 高负载能力。

此处不做过多讲解, 详情请点击一下链接。

七. 分片

1. 概念: Shard即分片, 是elasticsearch的数据载体。在ES中数据被分为primary shard(主分片)和 replica shard (副本分片),每一个主分片承载单个索引的一部分数据,分布于各个节点,副本分片为每个主分片的备份。副本分片不能和主分片在同一节点,分配原则是尽可能均匀在多个节点(如果有多个副本的话),以最大程度降低某个主分片出现问题后对整个集群乃至服务的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值