当Elasticsearch在单个服务器上时,是否有必要为非常大的数据设置多个主分片?

时间:2019-04-16 16:46:35

标签: java elasticsearch elasticsearch-5

我在单个服务器上安装了elasticsearch。我想知道当数据非常大时是否有必要将num_of_shards设置为大于1?我假设如果我将num_of_shards设置为大于1,但这些分片位于单个磁盘中。当我搜索某些东西并将任务分配给这些碎片时。性能可能低于此场景设置num_of_shards等于1,我的观点是否有问题?

暂时,我只有一台服务器可用。

2 个答案:

答案 0 :(得分:3)

每个分片下面都有一个完整的Lucene索引,为了使Elasticsearch服务请求,它将需要顺序查询每个分片。尽管如果使用SSD可以减轻性能影响,但仍然会影响性能。通常,分片的数量要比群集中的节点多,因为稍后如果您要增加分片的数量,则需要重新索引整个数据,这在某些情况下是不可行的。 This文章对此进行了很好的解释。

答案 1 :(得分:0)

我会做一个分片+一个副本(可能是不同的驱动器),根据您的使用情况和数据分布,可能有一些原因来做多个分片-但在大多数情况下,一个分片应该没问题。

较新版本的ES支持dynamic resharding,以防将来添加更多服务器/数据。