es 集群核心概念以及实践

这篇具有很好参考价值的文章主要介绍了es 集群核心概念以及实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

节点概念:

  • 节点是一个Elasticsearch的实例
    • 本质上就是一个JAVA进程
    • 一台机器上可以运行多个Elasticsearch进程,但是生产环境一般建议一台机器上只运行一个Elasticsearch实例
  • 每一个节点都有名字,通过配置文件配置,或者启动时候 -E node.name=node1指定
  • 每一个节点在启动之后,会分配一个UID,保存在data目录下

节点类型

常用的有以下几种:

  • Master Node:主节点
  • Master eligible nodes:可以参与选举的合格节点
  • Data Node:数据节点
  • Coordinating Node:协调节点

Master eligible nodes和Master Node

1、每个节点启动后,默认就是一个 Master eligible节点,

        可以通过 node.master: false 禁止成为 master eligible 节点

2、Master-eligible节点可以通过参加选主流程,成为 Master 节点

3、集群中第一个启动的节点会将自己选举成 Master 节点

4、每个节点上都保存了集群的状态,但是只有 Master 节点才能修改集群的状态信息

        所有的节点信息

        所有的索引和相关的 Mapping、Setting 信息

        分片的路由信息

Master Node的职责

  • 处理创建,删除索引等请求,负责索引的创建与删除
  • 决定分片被分配到哪个节点
  • 维护并且更新Cluster State

选主的过程

  • 互相Ping对方,Node ld 低的会成为被选举的节点
  • 其他节点会加入集群,但是不承担Master节点的角色。一旦发现被选中的主节点丢失,就会选举出新的Master节点

Data Node & Coordinating Node

  • Data Node

    • 可以保存数据的节点,叫做Data Node,负责保存分片数据。在数据扩展上起到了至关重要的作用
    • 节点启动后,默认就是数据节点。可以设置node.data: false 禁止
    • 由Master Node决定如何把分片分发到数据节点上
    • 通过增加数据节点可以解决数据水平扩展和解决数据单点问题
  • Coordinating Node

    • 负责接受Client的请求, 将请求分发到合适的节点,最终把结果汇集到一起
    • 每个节点默认都起到了Coordinating Node的职责

可以通过命令查看集群节点信息

GET _cat/nodes?v

 带 * 的表示 Master 节点

es 集群核心概念以及实践,elasticsearch,大数据,搜索引擎,es 集群也可以通过 cerebro 工具查看

带有 实心的小星星 表示 Master 节点

es 集群核心概念以及实践,elasticsearch,大数据,搜索引擎,es 集群 

分片(Primary Shard & Replica Shard)

  • 主分片(Primary Shard)
    • 用以解决数据水平扩展的问题。通过主分片,可以将数据分布到集群内的所有节点之上
    • 一个分片是一个运行的Lucene的实例
    • 主分片数在索引创建时指定,后续不允许修改,除非Reindex
  • 副本分片(Replica Shard)
    • 用以解决数据高可用的问题。 副本分片是主分片的拷贝
    • 副本分片数,可以动态调整
    • 增加副本数,还可以在一定程度上提高服务的可用性(读取的吞吐)
    • 这里注意,副本分片并不是越多越好,es 写操作是,需要将所有副本都写完才会返回,会影响写性能,正常一个副本就够用了
    • 类似日志类的,副本分片可以设置为0

 创建一个索引,设置 3 个主分片,每个分片两个副本,相当于一共有 9 个分片

# 设置三个主分片,每个分片两个副本
PUT /es_db
{
  "settings": {
    "number_of_shards": 3, 
    "number_of_replicas": 2
  }
}

通过 工具查看:

可以看到 三个实线框就是对应的三个主分片,虚线对应六个副本

这里注意:

全量数据 = 三个主分片相加 = 实线0 + 实线1 + 实线2

虚线0 = 实线0、 虚线1 = 实线1、虚线2 = 实线2

es 集群核心概念以及实践,elasticsearch,大数据,搜索引擎,es 集群

再创建一个索引,有两个主分片,每个主分片有 1 个副本

PUT /test2
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  }
}

 工具查看如下:es 集群核心概念以及实践,elasticsearch,大数据,搜索引擎,es 集群

分片的设定

对于生产环境中分片的设定,需要提前做好容量规划

  • 分片数设置过小
    • 导致后续无法增加节点实现水平扩展
    • 单个分片的数据量太大,导致数据重新分配耗时
  • 分片数设置过大,7.0 开始,默认主分片设置成1,解决了over-sharding(分片过度)的问题
    • 影响搜索结果的相关性打分,影响统计结果的准确性
    • 单个节点上过多的分片,会导致资源浪费,同时也会影响性能

 CAT API查看集群信息

GET /_cat/nodes?v   #查看节点信息
GET /_cat/health?v    #查看集群当前状态:红、黄、绿
GET /_cat/shards?v        #查看各shard的详细情况  
GET /_cat/shards/{index}?v     #查看指定分片的详细情况
GET /_cat/master?v          #查看master节点信息
GET /_cat/indices?v         #查看集群中所有index的详细信息
GET /_cat/indices/{index}?v      #查看集群中指定index的详细信息   

#查看集群的健康状况
GET _cluster/health

感谢小伙伴们的支持,持续更新中~~~ 文章来源地址https://www.toymoban.com/news/detail-855596.html

到了这里,关于es 集群核心概念以及实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 揭秘Elasticsearch:一文读懂分布式搜索与分析引擎的核心概念

            Elasticsearch 是一个开源、分布式、实时搜索和分析引擎,专门用于处理大规模数据的快速检索与分析。它建立在 Apache Lucene 的基础上,但提供了比 Lucene 更为丰富的功能和友好的RESTful API 接口,使得开发者能够轻松地进行全文搜索、结构化搜索以及对海量数据进行

    2024年02月19日
    浏览(52)
  • 搜索引擎elasticsearch :安装elasticsearch (包含安装组件kibana、IK分词器、部署es集群)

    kibana可以帮助我们方便地编写DSL语句,所以还要装kibana 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: 这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。 课前资料提供了镜像的tar包: 大家将

    2024年02月16日
    浏览(58)
  • 【ES】Elasticsearch核心基础概念:文档与索引

    es的核心概念主要是:index(索引)、Document(文档)、Clusters(集群)、Node(节点)与实例,下面我们先来了解一下Document与Index。 在讲解Document与Index概念之前,我们先来了解一下RESTful APIs,因为下面讲解Document和Index的时候会使用到。 当我们把es服务器启动起来之后,要怎么调用呢?

    2024年02月05日
    浏览(48)
  • ElasticSearch 核心概念以及常用命令

    概念: 这里可以类比与 MySQL 中的表,但是不同于表 在 es 中索引有三层含义 表示源文件数据:通常说集群中有 user 索引,即表示集群服务中存在 user 这样一张“表” 表示索引文件:以加速查询检索为目的而设计和创建的数据文件,通常承载于某些特定的数据结构,如哈希、

    2024年03月10日
    浏览(47)
  • Elasticsearch权威指南:深度解析搜索技术核心概念、原理及实践

    作者:禅与计算机程序设计艺术 2010年,当时仅仅30岁的Elasticsearch创始人黄文坚就率先发布了开源分布式搜索引擎Elasticsearch。从此, Elasticsearch 名扬天下,成为了当前搜索领域的翘楚。随着 Elasticsearch 的快速崛起,越来越多的人开始关注并应用 Elasticsearch 来进行搜索服务。

    2024年02月10日
    浏览(65)
  • SpringCloud分布式搜索引擎、数据聚合、ES和MQ的结合使用、ES集群的问题

    目录 数据聚合 聚合的分类 ​编辑 DSL实现Bucket聚合 ​编辑  DSL实现Metrics聚合​编辑 RestAPI实现聚合  对接前端接口​编辑  自定义分词器​编辑 Completion suggester查询 Completion suggester查询 酒店数据自动补全 实现酒店搜索框界面输入框的自动补全  数据同步问题分析​编辑 同

    2024年02月16日
    浏览(49)
  • Elasticsearch (ES) 搜索引擎: 数据类型、动态映射、多类型(子字段)

    原文链接:https://xiets.blog.csdn.net/article/details/132348634 版权声明:原创文章禁止转载 专栏目录:Elasticsearch 专栏(总目录) ES 映射字段的 数据类型 ,官网文档参考:Field data types。 下面是 ES 常用的一些基本数据类型。 字符串 类型: keyword :类型。 text :文本类型。

    2024年03月23日
    浏览(67)
  • 微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 Sentinel

    聚合(aggregations)可以让我们极其 方便的实现对数据的统计、分析、运算 。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些 统计功能的比数据库的sql要方便的多,而且查询速度非常快 ,可以实现近

    2024年02月11日
    浏览(51)
  • Docker安装ElasticSearch集群以及ES可视化工具(Head)

    一 安装Elasticsearch 1. 安装前准备,容器数据卷映射路径创建以及集群配置文件设置 容器数据卷映射路径创建 修改集群配置文件 配置文件还有一些其他参数的设置, 具体需要查看ES的官网 ES分词器安装包准备 下载中文分词器 https://github.com/medcl/elasticsearch-analysis-ik , 这里选择 7.

    2024年02月07日
    浏览(58)
  • 微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 微服务保护 Sentinel

    聚合(aggregations)可以让我们极其 方便的实现对数据的统计、分析、运算 。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些 统计功能的比数据库的sql要方便的多,而且查询速度非常快 ,可以实现近

    2024年02月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包