当前位置: 首页 > 面试题库 >

ElasticSearch-每个节点的最佳分片数

纪鸿禧
2023-03-14
问题内容

如果有人可以建议每个ES节点的最佳分片数量以获得最佳性能,或者提供任何建议的方式来得出一个应该使用的分片数量(如果有核心数量和内存占用量的话),我将不胜感激。


问题答案:

分片前要考虑以下三种情况。

情况1)
您想将Elasticsearch与故障转移和高可用性一起使用。然后,您要进行分片。在这种情况下,您需要根据要在生产中使用的节点[ES实例]的数量来选择分片的数量。

考虑您要在生产中提供3个节点。然后,您需要为每个索引选择1个主碎片和2个副本。如果您选择的碎片数量超出了您的需要。

情况2)
您的当前服务器将保存当前数据。但是由于未来动态数据的增加,您最终可能会在磁盘上没有空间,或者服务器无法处理大量数据,因此您需要为每个索引配置更多的碎片,例如2或3个碎片(
取决于您的要求 )。但是不应该有任何副本。

情况3)
在这种情况下,您将结合情况1和2的情况。然后,您需要将两种配置结合起来。考虑您的数据动态增加,并且您还需要高可用性和故障转移。然后,使用2个分片和1个副本配置索引。然后,您可以在节点之间共享数据并获得最佳性能。

注意: 然后将在每个分片中处理查询,并对所有分片的结果执行mapreduce并将结果返回给我们。
因此,地图缩小过程是昂贵的过程。最小碎片使我们获得最佳性能

如果您仅在生产中使用一个节点,则对于每个索引而言,仅一个主分片是最佳的分片。

希望能帮助到你..!



 类似资料:
  • 问题内容: ElasticSearch中如何有多个节点?我在elasticsearch.yml中使用以下内容,但只有最后一个节点启动,浏览器抱怨:。 问题答案: 我认为最简单的方法是在命令行上指定这些参数。要启动三个节点,您只需要在elasticsearch主目录中运行以下三个命令: 另一个解决方案是创建3个不同的配置文件,并使用参数启动三个节点。

  • 在我的ES集群中,我有10个碎片和2个副本,有5个节点。我只是在集群中添加了一个新节点,它与集群同步了。状态为绿色,根据集群API,我们现在在集群中有6个活动数据节点。但是,当我选中`'http://localhost:9200/_cat/shards'时,没有为该节点分配碎片。因此,没有弹性查询指向这个新添加的节点。该节点的日志文件中没有什么特别之处: 对如何解决这个问题有什么特别的意见吗?

  • 问题内容: 我想知道,JavaScript提供了多种方法来从任何元素中获取第一个子元素,但是哪种方法最好呢?最好的意思是:在行为方面,大多数跨浏览器兼容,最快,最全面且可预测。我用作别名的方法/属性的列表: 这适用于两种情况: 在表单或迭代的情况下。如果我可能遇到文字元素: 据我所知,使用来自的NodeList ,并使用。我将这一假设基于MDN参考: 是对元素节点的第一个子元素的引用,或者如果不存

  • 我想知道,JavaScript提供了多种方法从任何元素中获取第一个子元素,但哪种方法最好?我所说的“最佳”是指:在行为方面,最兼容跨浏览器、最快、最全面、最可预测。我用作别名的方法/属性列表: 这适用于两种情况: 这是表单的情况,或

  • 问题内容: 在通过SearchQuery进行搜索时,我试图查看和使用每个匹配项的_score。除了别的以外,这还可以知道我的搜索在哪个分数范围内。但是除了使用searchQuery.withMinScore(float)设置MinScore之外;我找不到任何方法来处理搜索分数。 使用的搜索功能来自org.springframework.data.elasticsearch.repository;

  • 我有一个以网状方式相互连接的节点的无向网络(即每个节点的度>=2)。我正在尝试找到一种方法来找到连接到网络中其他节点的最小数量的节点。 但通常情况不是这样,因为我需要手动找到其他节点。我想我可以使用最高度节点(例如x)作为源,使用找到到其他节点的最短路径。然后我可以迭代最短路径来找到其他节点。但是这种方法很乏味,我想知道是否有人有任何其他建议,使用networkx中可用的工具来最佳地解决这个问题。