ElasticSerach学习(一)-基本概念

简介: ElasticSerach基本概念

1.安装

参考CSDN es官方博客 https://elasticstack.blog.csdn.net/article/details/99413578

官网下载,启动即可

测试安装:

postman测试:

http://192.168.164.132:9200/

返回如下图所示,安装成功

2.概念

2.1 Cluster

集群,有一个或多个节点组成,默认情况下启动的es有一个cluster的集群,参照Es的配置文件elasticsearch.yml如下如所示:


PostMan查询集群状态

Get http://192.168.164.132:9200/_cluster/state

返回集群的信息

2.2 node

实例,一个node就是一个es的实例,多个node组成了es的集群,正常情况下,一个实例部署在一个单独的服务器上,学习中使用同一台服务器,或者多个虚拟机

node的分类

node类型

功能描述

参数(elasticsearch.yml中的配置项)

master-eligible

主node,可以对集群进行管理,增删node/index,分片

node.master

data

数据节点

node.data

ingest

数据接入节点

node.ingest

machine learning

机器学习

node.ml

7.9版本后使用node.roles指定node类型 https://elasticstack.blog.csdn.net/article/details/110947372

一个node可以同时具有上述的多个类型,即一个node既可以是主node,也可以作为data node存储数据,默认情况下,一个node是同时具有上述多个功能的

针对master节点,由于是管理集群节点,可以通过设置参数cluster.remote.connect:false来拒绝远程连接

针对master节点,如果有多个节点的node.master为true的情况下,需要从这些节点中选取一个作为master节点,可以通过node.voting_only参数设置此节点只参与选举,自身不会被选举.

postman查看node

Get http://192.168.164.132:9200/_cluster/state?filter_path=metadata.cluster_coordination.last_committed_config

返回结果:

2.3 Document

文档,是es中存储的最小数据单元,对比关系型数据库,文档与数据库表中的记录对应.

文档的存储不依赖与预先定义,即不需要按照预先定义好的字段存储,可以增减字段

文档通常以Json的形式存储,因为http的传输多以json


2.4 Type

类型,是文档的逻辑容器,对比关系型数据库,类型与数据库的是同一个概念.

类型在es 6版本之后,开始削弱,目前一个index只能由一个type,默认情况下是_doc

es8之后计划移除type


2.5 Index

索引,是文档的集合,对比关系型数据库是的概念

当一个文档进入索引的时候,需要根据hash运算得出文档的存储位置(哪一个分片),具体公式如下:

shard_num = hash(_routing)%分片数

_routing是文档id,由此也可以看出,分片数并不能动态修改,修改后无法查到对应文档的存储位置了.

replica可以修改数目

2.6 shard

分片,将一个索引划分为几个不同的索引,拆分的索引就是分片

在创建索引的时候可以指定分片数,注意的是分片会存在多个node上,这也是es作为分布式部署的功能

分片可以让es存储远超过一个节点磁盘容量的数据,并且可以加快搜索速度,减轻压力

分片分为两种:

  1. primary shard 主分片,将一个索引分割形成的分片就是主分片
  2. replica shard 复制分片,对每一个主分片做的副本,可以在主分片故障时替换主分片

测试创建index指定分片

PUT http://192.168.164.132:9200/user/pretty

{

   "settings":{

       "index.number_of_shards":2,

       "index.number_of_replicas":1


   }

}

指定主分片2个,副本一个

查询index设置信息

GET http://192.168.164.132:9200/user/_settings?pretty


2.7 replica

副本,可以提高搜索效率,保证高可用

默认情况下,es创建索引时会为索引创建一个分片,一个副本

查询index健康信息

GET http://192.168.164.132:9200/_cat/indices/user


返回状态值,yellow表示不安全,因为现在只有一个节点,所以我们指定的分片和副本处于同一个节点上,如果整个节点挂了,此索引就不可用了

查询分片情况

GET http://192.168.164.132:9200/_cat/shards?pretty

可以看到副本都未分配,因为没有新的node加入,如果有新的node加入,会自动将副本分配至新node


2.8 shard 健康状态

分为三种:

  1. red 至少一个主分片未分配或不可用
  2. yellow 所有主分片都已分配,但是至少一个副本未分配
  3. green 表示所有分片都已分配
目录
相关文章
|
2月前
|
数据库
补偿事务基本概念
补偿事务基本概念
38 2
|
2月前
|
jenkins 测试技术 持续交付
掌握Jenknis基础概念
任务(Jobs) Jobs是Jenkins中的核心概念。它们定义了构建过程的一系列步骤。一个Job代表了一项任务或一个工作单元,可以是软件项目、自动化流程或其他工作。每个Job都有一个配置,包括源代码管理、构建触发条件、构建参数等。 构建(Builds) 构建是对特定Job的一次执行实例。每次触发一个Job,Jenkins将创建一个新的构建实例。它包含了执行构建所需的所有步骤、输出信息和构建的状态。构建是CI/CD流程的实际执行单元。
52 0
|
10月前
|
存储 Kubernetes API
k8s基本概念-1
k8s基本概念
65 0
|
10月前
|
Kubernetes 调度 Docker
k8s基本概念-2
k8s基本概念
35 0
|
11月前
|
存储 Kubernetes 负载均衡
K8S(一)基本概念篇
最近公司要搭建一个微服务项目,之前的docker-compose部署的方式需要替换成K8S了,然后,哈哈,这个机会了又落到我身上了,虽然我并不知道怎么部署,但是我还是挺高兴的,又可以边学习边运用了,真是不赖。接下来不定期更新K8S系列文章,记录我的成长和踩坑记。
106 0
|
存储 NoSQL 网络协议
|
存储 安全 编译器
C++基础概念(上)2
C++基础概念(上)2
|
存储 算法 Unix
|
存储 设计模式 算法
C++基础概念(上)1
C++基础概念(上)1
|
程序员 C语言 C++
[C++]基本知识与概念
[C++]基本知识与概念