Apache Flume - Архитектура

На следующем рисунке показана базовая архитектура Flume. Как показано на рисунке,data generators (например, Facebook, Twitter) генерируют данные, которые собирает отдельный Flume agentsбегает по ним. После этогоdata collector (который также является агентом) собирает данные от агентов, которые объединяются и отправляются в централизованное хранилище, такое как HDFS или HBase.

Событие Flume

An event это основная единица данных, переносимых внутри Flume. Он содержит полезную нагрузку в виде массива байтов, который должен транспортироваться от источника к месту назначения, сопровождаемый дополнительными заголовками. Типичное событие Flume будет иметь следующую структуру -

Агент Flume

An agentэто независимый процесс-демон (JVM) в Flume. Он получает данные (события) от клиентов или других агентов и пересылает их следующему месту назначения (приемнику или агенту). В Flume может быть более одного агента. Следующая диаграмма представляетFlume Agent

Как показано на схеме, Flume Agent содержит три основных компонента, а именно: source, channel, а также sink.

Источник

А source - это компонент агента, который получает данные от генераторов данных и передает их в один или несколько каналов в виде событий Flume.

Apache Flume поддерживает несколько типов источников, и каждый источник получает события от указанного генератора данных.

Example - Источник Avro, источник Thrift, источник 1% в Twitter и т. Д.

Канал

А channel- это временное хранилище, которое получает события от источника и буферизует их, пока они не будут потреблены приемниками. Он действует как мост между источниками и стоками.

Эти каналы полностью транзакционные и могут работать с любым количеством источников и приемников.

Example - Канал JDBC, канал файловой системы, канал памяти и т. Д.

Раковина

А sinkхранит данные в централизованных хранилищах, таких как HBase и HDFS. Он потребляет данные (события) из каналов и доставляет их по назначению. Пунктом назначения приемника может быть другой агент или центральные склады.

Example - Раковина HDFS

Note- Возбудитель потока может иметь несколько источников, стоков и каналов. Мы перечислили все поддерживаемые источники, приемники и каналы в главе о настройке Flume этого руководства.

Дополнительные компоненты Flume Agent

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

Перехватчики

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

Селекторы каналов

Они используются для определения того, какой канал следует выбрать для передачи данных в случае использования нескольких каналов. Есть два типа переключателей каналов -

  • Default channel selectors - Они также известны как реплицирующие селекторы каналов, они реплицируют все события в каждом канале.

  • Multiplexing channel selectors - Они определяют канал для отправки события на основе адреса в заголовке этого события.

Процессоры раковины

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