使用不同容量(CPU,RAM)的计算机配置弹性搜索集群以进行滚动升级

问题描述 投票:0回答:1

由于成本限制,我只能使用以下类型的计算机来设置ES集群。

  1. 节点A:精益(具有CPU,RAM的实例)
  2. 节点B:Beefy(具有CPU,RAM的实例)
  3. 节点M:“比A精简”(w.r.t. CPU,RAM)实例

从磁盘角度看,A和B都具有相同的大小。

我的计划是将节点A和节点B设置为主节点,将数据节点和节点M设置为仅主节点(不存储数据)。由于两个数据节点不相同,将产生什么影响?

我将使其仅由3台计算机组成群集,以进行滚动升级(可以通过垂直扩展来管理当前的数据量和几年的预期增长,而保留默认的分片和副本数将使我受益匪浅。如果需要,可以水平缩放)

elasticsearch configuration high-availability
1个回答
1
投票

绝对不需要您的机器具有相同的规格。您将需要3个符合Master资格的节点,不仅用于升级,而且通常还用于高可用性。

如果要水平扩展,可以通过创建更多索引来保存数据,或将索引配置为具有多个主和/或副本碎片来实现。从版本7开始,将使用1个主碎片和1个副本碎片创建新索引的默认值。像这样的单个索引实际上并不允许您水平调度。

更新:

关于负载和分片分配(放置数据的位置),默认情况下,Elasticsearch将仅考虑可用的存储量。当您启动Elasticsearch实例时,它会自检硬件并相应地为各种任务配置其线程池(线程数和队列大小)。因此,用于处理任务的可用线程数可能会有所不同。如果我没有记错的话,协调节点(接收外部请求的节点)将以循环方式分配索引/写入请求,而不考虑负载。取决于您的Elasticsearch版本,这对于搜索/读取请求是不同的,其中协调节点将利用自适应副本选择,并考虑分发请求时各个副本的负载/响应时间。

此外,调整大小和缩放是一个过于复杂的主题,无法通过简单的响应得到全面的回答。通常,它还涉及进行测试以找出单个节点的限制/边界。

BTW:在Elasticsearch v7.x中,默认主分片的数量已更改,因为过多的过度分片是Elasticsearch用户面临的最常见问题之一。 “合理的”分片大小为数十个千兆字节。

© www.soinside.com 2019 - 2024. All rights reserved.