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

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

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

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

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

比如这里创建一个索引库

PUT /test
{
  "settings": {
    "number_of_shards": 3, // 分片数量
    "number_of_replicas": 1 // 副本数量
  },
  "mappings": {
    "properties": {
      // mapping映射定义 ...
    }
  }
}

这就表示这个索引库的数据会被存放到三个分片当中,三个分片会分到哪个节点上默认是有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)主分片保存数据的时候,副分片也要进行数据备份

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

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值