由于我是使用[elasticsearch版本7.4]的Elasticsearch的新手,并且经过大量研究,到目前为止,尚不清楚在特定索引中首选多少个碎片/节点。截至目前,我已经配置了3个分片和2个具有3个节点的副本(每个具有8GB RAM,500GB HDD)。并在一个索引中拥有55GB的数据。
因此,在以下几点上,我需要您的意见/建议。
最佳答案
希望我在运行Elasticsearch集群时能给您一些有用的建议:)
1)
分片:请参阅this blog post for more information,但是您的平均分片将是55gb/3 = 18gb
,这是一个很好的分片大小(以我的经验,最好保持5gb-25gb
之间的分片,ES文档也建议这样做)。
副本:2个副本是我的首选,可以在容错能力和性能之间取得良好的平衡,所以这很好。
节点:这3个节点应该足够,您将不需要那么多磁盘。使用2个副本,您将在硬盘驱动器的55gb * 3 = 165gb
上存储大约1500gb
的数据(可能更多取决于您的映射),因此也许可以通过将节点与100gb
磁盘一起使用来节省一些钱。
2)
对于分区容忍度,我可能建议设置write_consistency=quorum
。这样,即使您丢失了一个节点,因此丢失了1个副本分片,您仍然可以写出1个主副本和1个副本副本。否则,您需要重新引导/重新创建该节点以重新开始写入。有关更多详细信息,请参见https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-index_.html#index-consistency。
符合Master资格:是的,我建议至少3个Master节点,因此您需要将所有3个节点设置为Master和Data节点。
关于elasticsearch - Elasticsearch中的一致性和分区容限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726600/