【发布时间】:2015-03-22 18:10:05
【问题描述】:
我是 ElasticSearch 的新手,我正在尝试使用它为我们的用户索引文档内容。文档内容将使用 Apache Tika 连同文件元数据和相关信息(大小、日期、扩展名等)一起提取,并将全部存储在 ElasticSearch 中并建立索引。
问题是我无法事先知道我将索引多少数据,因为这将是新客户的一项附加服务。
我的想法是从集群中的单个节点开始,该节点将有 1000 个分片和 1 个副本(总共 2000 个分片)。每个客户端都有自己的索引,这意味着这个节点将只支持 1000 个客户端,这应该足够了,因为我们一开始没有很多客户端。一旦节点已满,我们将扩展集群并添加一个新节点,这将扩展集群以支持 2000 个客户端等等。
我关心的是存储。由于我将索引大型数据集,因此存储的数据会迅速扩大。
为了争论,假设我将一个 1GB 的卷附加到我的节点上,并假设我无法将其扩展至此之外。现在,如果我向集群添加一个新节点,假设第一个节点已经达到其存储限制(假设它现在使用 999MB),elasticsearch 将如何表现。
假设客户端 A 有一个要索引的新文档并且文档大小为 5MB。 Elasticsearch 将如何处理这个问题?它会将索引移动到新节点吗?还是保留原始索引并将新的索引请求标记为失败?
我问这个的原因是因为我将在 Amazon EC2 上托管我的 ElasticSearch 集群,并附加一个 EBS 卷,并且由于 Amazon 按 EBS 预置 GB 收费,因此明智的做法是从小处着手并在以下情况下扩展卷需要,因此我们不必在项目开始时产生大量成本。
【问题讨论】:
标签: amazon-web-services amazon-ec2 elasticsearch