Tuesday, January 28, 2020

ELK-стек, немного теории

Индекс
Индекс в Elasticsearch - это набор документов, которые совместно используют некоторые
общие признаки. Каждый индекс содержит несколько типов, которые, в свою очередь, содержат несколько документов, и каждый документ содержит несколько полей. Индекс состоит из нескольких документов JSON, их может быть сколько угодно.
Примерно так:
http://localhost:9200/[index]/[type]/[doc]

Document
Документ в Elasticsearch - это документ JSON, хранящийся в индексе. Каждый
документ имеет тип и соответствующий идентификатор, который представляет его однозначно.
Типовой пример документа:
{
"_index" : "packtpub",

"_type" : "elk",

"_id" : "1",

"_version" : 1,

"found" : true,

"_source":{

    book_name : "learning elk" }
}

Тип
Тип используется для обеспечения логического разделения внутри индексов. Представляет собой класс аналогичных документов. Индекс может иметь
несколько типов, и мы можем определить их в соответствии с контекстом.
Например, индекс для Facebook может иметь "сообщение" в качестве одного из типов, комментарии - это другие типы документов.

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

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

Кластер
Кластер - это совокупность узлов, на которых хранятся индексированные данные.
Elasticsearch обеспечивает горизонтальную масштабируемость. Каждый кластер представлен именем кластера (имя кластера задается свойством с именем cluster.name в
конфигурация Elasticsearch elasticsearch.yml). По умолчанию, название кластера - Elasticsearch

Узел
Узел - это единственный запущенный экземпляр Elasticsearch, который принадлежит одному
из скоплений. По умолчанию каждый узел в Elasticsearch присоединяется к кластеру. Каждый Узел может иметь свою собственную конфигурацию, определенную в elasticsearch.yml, так же узел может иметь различные настройки относительно распределение памяти и ресурсов.

Data node
Узел данных - индексирует документы и выполняют поиск по ним. Всегда рекомендуется добавлять дополнительные узлы данных для повышения производительности или масштабирования кластера. Узел может быть представлен как узел данных, благодаря данным настройкам в формате YML
node.master = false
node.data=true

Masternode
Главный узел - отвечает за управление группой узлов. Для больших кластеров рекомендуется иметь три выделенных главных узла (один основной и два резервных), которые действуют только как главные узлы и не хранят индексы и не выполняют поиск. Узел может быть
сконфигурирован как выделенный главный узел с этой конфигурацией в формате YML:
node.master =true
node.data=false

Routing node or load balancer node
Узел маршрутизации или узел балансировки нагрузки - эти узлы не играют
роль либо главного узла, либо узла данных, но просто выполняют балансировку нагрузки, либо занимаются маршрутизацией запросов на поиск или индексирование документа в
соответствующие узлы. Это полезно для больших объемов поиска информации. Узел может быть настроен как узел маршрутизации в формате YML:
node.master =false
node.data=false

Успехов!

  
 

No comments:

Post a Comment