ElasticSearch仅对主碎片进行镜像和分配副本

kx1ctssn  于 2022-09-20  发布在  ElasticSearch
关注(0)|答案(1)|浏览(168)

我正在尝试设置ElasticSearch(使用Eck操作符),以便它有运行在廉价机器上的节点(用于“正常”流),以及运行在“昂贵”机器上的节点(用于突发时刻)。重要的是要注意,我使用的数据是完全被摄取的,并且没有对查询进行索引(只发生搜索查询)。我只有一个索引,所以我将跳过图表中的这一部分。

我决定选择以下方法:在一个“廉价”节点(CN)上获取数据,该节点将作为我的分片的主节点。主节点也在那里运行,但这并不相关(我认为)。

+--------------------- Cheap Node -------------------------+
|  [shard0_P] [shard1_P] [shard2_P] [shard3_P] [shard4_P]  |
+----------------------------------------------------------+

我现在还希望在更大的机器上运行“昂贵的”节点。我想要2个节点(EN1、EN2),它们可以共享碎片。我想要做到这一点:

+-------------------- Expensive Node1 ---------------------+
|  [shard0_R] [shard1_-] [shard2_R] [shard3_-] [shard4_R]  |
+----------------------------------------------------------+

+-------------------- Expensive Node2 ---------------------+
|  [shard0_-] [shard1_R] [shard2_-] [shard3_R] [shard4_-]  |
+----------------------------------------------------------+

分片将均匀分布在EN1和EN2上。

将所有主分片都放在cn上的原因是,我希望能够关闭所有昂贵的节点,同时仍然保留我的所有数据。

我尝试在仅打开CN的情况下运行Clusted,并在那里摄取数据。然后,我设置了cluster.routing.rebalance.enable=replicas以避免碎片从CN移到ENS,并打开了节点。我的data_1和_data2 pod是在en节点上分配的,但没有碎片的镜像。当我尝试将cluster.routing.rebalance.enable的值更改为其他值(primaries)时,碎片开始离开cn节点以平衡en节点上的所有内容-这不是我想要的:(

是否有办法配置ElasticSearch来实现此设计?

z9smfwbn

z9smfwbn1#

将所有主分片都放在cn上的原因是,我希望能够关闭所有昂贵的节点,同时仍然保留我的所有数据。

如果您关闭了昂贵的节点,您仍然拥有所有数据。

如果您关闭了廉价的节点,您仍然拥有所有数据。

因为您只进行搜索,所以您的碎片是主要的还是廉价节点上的副本都没有区别。如果您因为关闭托管主碎片的节点而丢失主碎片,则副本将被提升为主碎片。主碎片和副本碎片是彼此的完全相同的副本,有点像双子座。

相关问题