我正在尝试设置ElasticSearch (woth操作符),以便它在廉价机器上运行节点(用于“正常”流),在“昂贵”机器上运行节点(用于突发时刻)。重要的是要注意,我使用的数据是完全吸收的,并且没有对查询进行索引(只有搜索查询发生)。我只有一个索引,所以我将跳过图表中的那个部分。
我决定选择以下方法:在“廉价”节点(CN)上摄取数据,该节点将充当我的碎片的主节点。主节点也在那里运行,但这与此无关(我认为)。
+--------------------- Cheap Node -------------------------+
| [shard0_P] [shard1_P] [shard2_P] [shard3_P] [shard4_P] |
+----------------------------------------------------------+
我现在还想让“昂贵”的节点在更大的机器上运行。我想要两个节点(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运行集群,并在那里摄取数据。然后,我将cluster.routing.rebalance.enable=replicas
设置为避免碎片从CN转移到ENs中,并打开节点。我的data_1和_data2吊舱是在EN节点上分配的,但是没有对碎片的镜像。当我尝试将cluster.routing.rebalance.enable
的值更改为其他东西(primaries
)时,碎片开始离开CN节点,以平衡EN节点上的所有内容--而不是我想要的:(
是否有方法配置ElasticSearch以实现此设计?
发布于 2022-09-16 03:32:49
使主碎片全部位于CN上的原因是,我希望能够关闭所有昂贵的节点,并且仍然拥有我的所有数据。
如果关闭昂贵的节点,仍然拥有所有数据。
如果您关闭您的廉价节点,您仍然有您的所有数据。
因为您只是在进行搜索,所以无论您的碎片是主节点还是廉价节点上的副本,都没有区别。如果由于关闭承载主碎片的节点而丢失主碎片,则副本将提升为主节点。原始碎片和复制品碎片是彼此的精确副本,有点像双子座。
https://stackoverflow.com/questions/73744124
复制