Размер / архитектура кластера Elasticsearch - PullRequest
0 голосов
/ 12 июня 2018

Я пытался настроить кластер эластичного поиска для обработки некоторых данных журнала с некоторых 3D-принтеров.у нас более 850 тысяч документов, генерируемых каждый день на 20 машинах.у каждого из них есть свой индекс.

В настоящее время у нас есть данные за 16 месяцев, с которыми нужно составить около 410M записей для индексации в каждом из индексов эластичного поиска.мы обрабатываем данные из CSV-файлов с искрой и записываем их в кластер эластичного поиска с 3 компьютерами, каждый из которых имеет 16 ГБ ОЗУ и 16 ядер ЦП.но каждый раз, когда мы достигаем около 10-14M документа / индекса, мы получаем ошибку сети.

Job aborted due to stage failure: Task 173 in stage 9.0 failed 4 times, most recent failure: Lost task 173.3 in stage 9.0 (TID 17160, wn21-xxxxxxx.ax.internal.cloudapp.net, executor 3): org.elasticsearch.hadoop.rest.EsHadoopNoNodesLeftException: Connection error (check network and/or proxy settings)- all nodes failed; tried [[X.X.X.X:9200]]

Я уверен, что это не сетевая ошибка, это только набор средств поиска, который не может обработать больше запросов на индексирование.

Чтобы решить эту проблему, я попытался настроить многие параметры эластичного поиска, такие как: refresh_interval, чтобы ускорить индексацию и избавиться от ошибки, но ничего не помогло.после мониторинга кластера мы думаем, что мы должны увеличить его.

мы также пытались настроить искровой разъем упругого поиска, но безрезультатно.

Итак, я ищу правильный способ выбора размера кластера?есть ли рекомендации по выбору размера кластера?любые основные моменты будут полезны.

Примечание: нас интересует в основном индексация данных, поскольку у нас есть только один или два запроса к данным, чтобы получить некоторые метрики.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Это ошибка сети, говорящая о том, что узел данных ... потерян.Возможно, произошел сбой, вы можете проверить журналы эластичного поиска, чтобы увидеть, что происходит.

Самая важная вещь, которую нужно понять сasticsearch4Hadoop, - это как распараллеливается работа:

  • 1 Spark-разделение на 1Эластичный поиск эластичного поиска

Важным моментом является шардинг, это то, как вы балансируете работу с помощью эластичного поиска.Кроме того, refresh_interval должно быть> 30 секунд, и вы должны отключить репликацию при индексировании, это очень простая настройка конфигурации, я уверен, что вы можете найти много советов по этому поводу в документации.

С Spark выможно проверить в веб-интерфейсе (порт 4040), как работа разбивается на задачи и разделы, это очень помогает.Кроме того, вы можете контролировать пропускную способность сети между Spark и ES и статистику узлов es.

0 голосов
/ 12 июня 2018

Я бы начал с того, чтобы попытаться разделить индексы по месяцам (или даже дням), а затем выполнить поиск по шаблону индекса.Пример: sensor_data_2018.01, sensor_data_2018.02, sensor_data_2018.03 и т. Д. И поиск по шаблону индекса sensor_data _ *

Некоторые вещи, которые повлияют на необходимый вам размер кластера, будут:

  • Сколько документов
  • Средний размер каждого документа
  • Сколько сообщений в секунду индексируется
  • Скорость дискового ввода-вывода

Я думаюВаш кластер должен быть достаточно хорош для обработки такого количества данных.У нас есть кластер с 3 узлами (8CPU / 61 ГБ ОЗУ каждый), ~ 670 индексов, ~ 3 миллиарда документов, ~ 3 ТБ данных, и у нас были проблемы с индексацией только тогда, когда скорость индексации превышает 30 000 документов в секунду.Даже тогда произойдет сбой только в индексировании нескольких документов, и его можно будет повторить после небольшой задержки.Наша реализация также очень интенсивно индексируется при минимальном фактическом поиске.

Я бы проверил журналы сервера эластичного поиска и посмотрел, сможете ли вы найти более подробное сообщение об ошибке.Возможный поиск RejectedExecutionException's.Также проверьте работоспособность кластера и статистика узлов , когда вы начнете получать сбои, которые могут пролить немного света на происходящее.Если это возможно, используйте повторную попытку и откат, когда начинают возникать сбои, чтобы дать ES время, чтобы наверстать упущенное.

Надеюсь, это немного поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...