• ES集群中节点与分片的区别


    一开始我也搞混了,以为分片就是节点

    节点:节点就是我们一个个的主机,你也可以理解为一个个的ES

    分片:分片就是将原来存放在一个节点上面的数据进行分片,然后存放到不同的节点。

    分片分为主分片和副分片,副分片是用来进行数据拷贝的

    比如这里创建一个索引库

    1. PUT /test
    2. {
    3. "settings": {
    4. "number_of_shards": 3, // 分片数量
    5. "number_of_replicas": 1 // 副本数量
    6. },
    7. "mappings": {
    8. "properties": {
    9. // mapping映射定义 ...
    10. }
    11. }
    12. }

    这就表示这个索引库的数据会被存放到三个分片当中,三个分片会分到哪个节点上默认是有ES控制,同时也可以收主节点控制

    es01、es02、es03表示三个节点,实体星号表示这个节点为主节点,右边的序号就是分片的序号,并且表示了分片在节点上的分布

    下面看插入一条文档的过程,这样更能清楚明了的明白节点与分片的区别

    过程:

    • 1)新增一个id=1的文档

    • 2)主节点对id做hash运算,假如得到的是2,则应该存储到shard-2

    • 3)shard-2的主分片在node3节点,将数据路由到node3

    • 4)node3保存文档

    • 5)node3将数据同步给shard-2的副本replica-2,在node2节点

    • 6)返回结果给coordinating-node节点

    • 7)返回结果给用户

     注解:

    • 1)shard就是分片的意思

    • 2)hash算法将文档id与分片数量进行取余得到分片的序号,然后就将文档数据存放到该分片所在主机的data数据节点上面去

    • 3)主分片保存数据的时候,副分片也要进行数据备份

    现在应该知道了分片和节点之间的区别

     

  • 相关阅读:
    Mamba 作者谈 LLM 未来架构
    PAT 1065 A+B and C (64bit)
    基于微信小程序的校园信息共享平台 毕业设计-附源码211615
    GL Studio 5 安装与体验
    多御安全浏览器更新了这些设置,还是你熟悉的吗?
    CSS【进阶】
    Sleep(0)、Sleep(1)、SwitchToThread()
    Centos MySQL 源码安装(5.6)
    C语言指针进阶:各类型指针变量详解
    【ceph】ceph集群设计优化存储-超级干货-满满都是生产活
  • 原文地址:https://blog.csdn.net/a18307096730/article/details/125526515