我有Elasticsearch集群(它不是真正的集群,因为我只有1个节点) 集群拥有1.8 TB的数据,就像350个索引一样。
我想向群集添加新节点但我不想为所有数据运行复制。 我想将我的分片分成2个节点(每个节点将有1个分片)。
对于每个索引,我有2个分片0& 1,我想分割我的数据。 这个有可能 ?这将如何影响Kibana的表现?
非常感谢
阿米特
答案 0 :(得分:1)
对于每个索引,我有2个分片0& 1,我想分割我的数据。这可能吗?
将第二个节点添加到群集后,您的数据将自动“重新平衡”并将复制您的数据。
据推测,如果你要跑
$ curl -XGET localhost:9200/_cluster/health?pretty
然后您会看到当前的群集运行状况可能为黄色,因为没有发生复制。您可以判断,因为您可能拥有相同数量的已分配主分片,因为您有未分配的分片(未分配的副本)。
启动群集中的第二个节点时会发生什么?它将立即开始从原始节点复制分片。完成后,数据将存在于两个节点上,这就是您想要发生的事情。当您通过最终添加第三个节点进一步扩展时,您实际上将以不太可预测的方式在整个群集中分散分片,这不会导致节点之间的1:1关系。只有在添加第三个节点后才能合理地避免将所有分片数据复制到每个节点。
其他考虑因素:
discovery.zen.minimum_master_nodes
设为2
。应始终使用整数除法(截断除法)将其设置为M / 2 + 1
,其中M
是群集中符合条件的主节点的数量。如果您未设置此设置,则最终会导致数据丢失。这将如何影响Kibana的表现?
很难说这是否真的会提高性能,但很可能只是将工作量分散到两台机器上。