Архитектура hot-warm - это популярный подход к оптимизации кластеров Elasticsearch для повышения производительности индексирования и поиска. Эта архитектура предназначена для работы с данными, основанными на времени, такими как журналы и метрики, которые часто индексируются и ищутся. В этой статье мы обсудим преимущества использования архитектуры hot-warm и предоставим пошаговое руководство по настройке кластера Elasticsearch hot-warm.
Преимущества архитектуры Hot-Warm
- Повышенная производительность: Благодаря разделению операций индексирования и поиска архитектура hot-warm позволяет лучше распределять ресурсы и повышать общую производительность.
- Экономическая эффективность: архитектура Hot-Warm позволяет использовать различные аппаратные профили для "горячих" и "теплых" узлов, что снижает общие затраты на инфраструктуру.
- Масштабируемость: Эта архитектура позволяет легко масштабировать кластер, добавляя по мере необходимости больше горячих или теплых узлов.
Настройка кластера Elasticsearch
Шаг 1: Настройка ролей узлов
Сначала настройте узлы Elasticsearch на соответствующие роли. Горячим узлам должна быть присвоена роль "data_hot", а теплым узлам - роль "data_warm". Обновите файл конфигурации elasticsearch.yml на каждом узле со следующими настройками:
Для горячих узлов:
Для горячих узлов:
1 | node.roles: ["data_hot", "ingest", "remote_cluster_client"] |
Для теплых узлов:
1 | node.roles: ["data_warm"] |
Для мастер узлов:
1 | node.roles: ["master"] |
Шаг 2: Внедрите управление жизненным циклом индекса (ILM)
Чтобы автоматизировать процесс перемещения данных с горячих узлов на теплые, используйте функцию управления жизненным циклом индекса (ILM) в Elasticsearch. Создайте политику ILM, определяющую этапы и действия, которые необходимо предпринять:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | PUT _ilm/my_policy { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50GB", "max_age": "7d" } } }, "warm": { "min_age": "7d", "actions": { "allocate": { "require": { "data": "warm" } }, "forcemerge": { "max_num_segments": 1 } } } } } } |
Шаг 3: Примените политику ILM к шаблону индекса
Наконец, создайте шаблон индекса, который будет применять соответствующие настройки к новым индексам. Шаблон должен включать настройки для количества хранилищ, реплик, политики ILM и предпочтения уровня данных. Например:
1 2 3 4 5 6 7 8 9 10 11 12 | PUT _index_template/my_template { "index_patterns": ["my_index-*"], "template": { "settings": { "number_of_shards": 3, "number_of_replicas": 1, "index.routing.allocation.include._tier_preference": "data_hot", "index.lifecycle.name": "my_policy" } } } |
Заключение
Выполнив эти шаги, вы сможете создать кластер Elasticsearch, оптимизирующий производительность и распределение ресурсов.