Я немного потрудился над проектом упругого поиска и ищу некоторую основную c архитектурную информацию. Я пытаюсь предоставить кластер basi casticsearch для некоторых исследователей, которые будут подвергать кластер небольшой нагрузке ... Я представляю менее 100 запросов в день. Кроме того, новые документы будут добавляться с перерывами, возможно, выступление здесь или там каждые пару недель / месяцев. В настоящее время у меня есть 1 терабайт данных, состоящих из 50 - 75i sh миллиардов записей (хотя количество записей очень нечеткое).
Основано на информации здесь https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/sizing-domains.html
Minimum Storage Requirement = Source Data * (1 + Number of Replicas) * (1 + IndexingOverhead) / (1 - Linux Reserved Space) / (1 - Amazon ES Overhead)
Так что для моего случая это будет:
data_size = 1T
storage = data_size * 2 * 1.1 / 0.95 / 0.8 = 2.89 = ~3T
storage = ~3T
В отношении осколков:
Approximate Number of Primary Shards = (Source Data + Room to Grow) * (1 + Indexing Overhead) / Desired Shard Size
Так для моего случая:
desired_shardSize = 30GB
shards = ~3000GB * 1.1 / desired_shard_size = ~110
shards = ~110
Приведенная выше ссылка гласит следующее:
Как правило, ограничения хранилища для каждого экземпляра типа соответствуют количеству ЦП и памяти, которые могут вам понадобиться для легких рабочих нагрузок. Например, экземпляр m4.large.elasticsearch имеет максимальный размер тома EBS, равный 512 ГБ, 2 ядра vCPU и 8 ГБ памяти.
Поскольку я считаю, что кластер попадает под "свет" «рабочая нагрузка, было бы правильно сказать, что если бы я решил использовать m4.large.elasticsearch
, то я бы хотел подготовить 3T / 512GB = ~6
m4.large.elasticsearch
экземпляров?
Итак, в общем, мне понадобится:
~ 3T хранилища на 110 осколков, распределенных по 6 узлам (серверы EC2).
Я нечеткий в разных типы узлов, известные как главные узлы, узлы клиентов и узлы данных. Покрывают ли приведенные выше вычисления все узлы, которые вам понадобятся? Я понимаю, что «узел данных» содержит данные, а «главный узел» управляет кластером. Означает ли это, что у меня будет 6 узлов данных (на основе приведенных выше расчетов), а затем некоторое количество мастер-узлов?
Является ли приведенная выше аргументация обоснованной для моего варианта использования? Кроме того, есть ли какие-либо рекомендуемые ресурсы, о которых вы знаете, чтобы помочь начинающему пользователю в настройке описанного выше типа? Спасибо за любой вклад все.