Быстрый и грязный базис c, настроенный для кластера Elasticsearch - PullRequest
0 голосов
/ 20 февраля 2020

Я немного потрудился над проектом упругого поиска и ищу некоторую основную 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 узлов данных (на основе приведенных выше расчетов), а затем некоторое количество мастер-узлов?

Является ли приведенная выше аргументация обоснованной для моего варианта использования? Кроме того, есть ли какие-либо рекомендуемые ресурсы, о которых вы знаете, чтобы помочь начинающему пользователю в настройке описанного выше типа? Спасибо за любой вклад все.

...