苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 9531|回复: 5

[Elasticsearch] 68-Elasticsearch分片预分配

[复制链接]
发表于 2019-1-14 09:15:39 | 显示全部楼层 |阅读模式
分片预分配

一个分片存在于单个节点, 但一个节点可以持有多个分片。想象一下我们创建拥有两个主分片的索引而不是一个:
[C#] 纯文本查看 复制代码
PUT /my_index

{

  "settings": {

    "number_of_shards":   2, 

    "number_of_replicas": 0

  }

}



创建拥有两个主分片无副本分片的索引。

当只有一个节点时,两个分片都将被分配至相同的节点。 从我们应用程序的角度来看,一切都和之前一样运作着。应用程序和索引进行通讯,而不是分片,现在还是只有一个索引。

这时,我们加入第二个节点,Elasticsearch 会自动将其中一个分片移动至第二个节点,如 图 50 “一个拥有两个分片的索引可以利用第二个节点” 描绘的那样, 当重新分配完成后,每个分片都将接近至两倍于之前的计算能力。

一个拥有两个分片的索引可以利用第二个节点
elas_4402.png
一个拥有两个分片的索引可以利用第二个节点

我们已经可以通过简单地将一个分片通过网络复制到一个新的节点来加倍我们的处理能力。 最棒的是,我们零停机地做到了这一点。在分片移动过程中,所有的索引搜索请求均在正常运行。

在 Elasticsearch 中新添加的索引默认被指定了五个主分片。 这意味着我们最多可以将那个索引分散到五个节点上,每个节点一个分片。 它具有很高的处理能力,还未等你去思考这一切就已经做到了!

分片分裂

用户经常在问,为什么 Elasticsearch 不支持 分片分裂(shard-splitting)— 将每个分片分裂为两个或更多部分的能力。 原因就是分片分裂是一个糟糕的想法:

  • 分裂一个分片几乎等于重新索引你的数据。它是一个比仅仅将分片从一个节点复制到另一个节点更重量级的操作。
  • 分裂是指数的。起初你你有一个分片,然后分裂为两个,然后四个,八个,十六个,等等。分裂并不会刚好地把你的处理能力提升 50%。
  • 分片分裂需要你拥有足够的能力支撑另一份索引的拷贝。通常来说,当你意识到你需要横向扩展时,你已经没有足够的剩余空间来做分裂了。

Elasticsearch 通过另一种方式来支持分片分裂。你总是可以把你的数据重新索引至一个拥有适当分片个数的新索引(参阅 重新索引你的数据)。 和移动分片比起来这依然是一个更加密集的操作,依然需要足够的剩余空间来完成,但至少你可以控制新索引的分片个数了。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2019-1-14 09:32:10 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-1-14 15:00:14 | 显示全部楼层
强烈支持楼主ing……
发表于 2019-1-14 15:36:45 | 显示全部楼层
我只是路过打酱油的。
发表于 2019-1-14 19:48:10 | 显示全部楼层
我只是路过打酱油的。
发表于 2019-1-14 20:58:04 | 显示全部楼层
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 15:36

© 2014-2021

快速回复 返回顶部 返回列表