Учебники

Apache Flume — Конфигурация

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

В конфигурационном файле Flume нам нужно:

  • Назовите компоненты текущего агента.
  • Опишите / настройте источник.
  • Опишите / настройте приемник.
  • Опишите / настройте канал.
  • Свяжите источник и приемник с каналом.

Обычно у нас может быть несколько агентов в Flume. Мы можем дифференцировать каждого агента, используя уникальное имя. И используя это имя, мы должны настроить каждого агента.

Наименование компонентов

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

agent_name.sources = source_name 
agent_name.sinks = sink_name 
agent_name.channels = channel_name 

Flume поддерживает различные источники, приемники и каналы. Они перечислены в таблице ниже.

источники каналы Раковины
  • Avro Source
  • Бережливый источник
  • Exec Source
  • Источник JMS
  • Каталог каталогов
  • Твиттер 1% пожарный шланг Источник
  • Кафка Источник
  • NetCat Source
  • Источник Генератора Последовательности
  • Syslog Sources
  • Системный журнал TCP Source
  • Многопортовый системный журнал TCP Source
  • Системный журнал UDP Source
  • HTTP Source
  • Источник стресса
  • Источники наследия
  • Бережливый источник наследия
  • Пользовательский источник
  • Писец источник
  • Канал памяти
  • Канал JDBC
  • Канал Кафка
  • Файловый канал
  • Разлитый канал памяти
  • Канал псевдо транзакций
  • Раковина HDFS
  • Раковина улья
  • Logger Sink
  • Авро Раковина
  • Береговая раковина
  • IRC Раковина
  • Рулонная мойка
  • Нулевая Раковина
  • HBaseSink
  • AsyncHBaseSink
  • MorphlineSolrSink
  • ElasticSearchSink
  • Kite Dataset Sink
  • Раковина Кафки

Вы можете использовать любой из них. Например, если вы передаете данные Twitter с использованием источника Twitter через канал памяти в приемник HDFS и идентификатор агента в агенте TwitterAgent , то

TwitterAgent.sources = Twitter 
TwitterAgent.channels = MemChannel 
TwitterAgent.sinks = HDFS 

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

Описание источника

Каждый источник будет иметь отдельный список свойств. Свойство с именем «type» является общим для каждого источника и используется для указания типа используемого нами источника.

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

agent_name.sources. source_name.type = value 
agent_name.sources. source_name.property2 = value 
agent_name.sources. source_name.property3 = value 

Например, если мы рассмотрим источник Twitter , ниже приведены свойства, которым мы должны предоставить значения для его настройки.

TwitterAgent.sources.Twitter.type = Twitter (type name) 
TwitterAgent.sources.Twitter.consumerKey =  
TwitterAgent.sources.Twitter.consumerSecret = 
TwitterAgent.sources.Twitter.accessToken =   
TwitterAgent.sources.Twitter.accessTokenSecret = 

Описание раковины

Как и источник, каждый приемник будет иметь отдельный список свойств. Свойство с именем «тип» является общим для каждого приемника, и оно используется для указания типа используемого приемника. Наряду со свойством «тип» необходимо предоставить значения для всех необходимых свойств конкретного приемника, чтобы настроить его, как показано ниже.

agent_name.sinks. sink_name.type = value 
agent_name.sinks. sink_name.property2 = value 
agent_name.sinks. sink_name.property3 = value

Например, если мы рассмотрим приемник HDFS , ниже приведены свойства, которым мы должны предоставить значения для его настройки.

TwitterAgent.sinks.HDFS.type = hdfs (type name)  
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data

Описание канала

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

Чтобы описать каждый канал, вам нужно установить необходимые свойства, как показано ниже.

agent_name.channels.channel_name.type = value 
agent_name.channels.channel_name. property2 = value 
agent_name.channels.channel_name. property3 = value 

Например, если мы рассмотрим канал памяти , ниже приведены свойства, которым мы должны предоставить значения для его настройки.

TwitterAgent.channels.MemChannel.type = memory (type name)

Привязка источника и раковины к каналу

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

agent_name.sources.source_name.channels = channel_name 
agent_name.sinks.sink_name.channels = channel_name 

В следующем примере показано, как связать источники и приемники с каналом. Здесь мы рассмотрим источник Twitter, канал памяти и приемник HDFS .

TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel 

Запуск Flume Agent

После настройки мы должны запустить агент Flume. Это делается следующим образом —

$ bin/flume-ng agent --conf ./conf/ -f conf/twitter.conf 
Dflume.root.logger=DEBUG,console -n TwitterAgent 

где —

agent — Команда для запуска Flume agent

—conf, -c <conf> — использовать файл конфигурации в каталоге conf

-f <файл> — указывает путь к файлу конфигурации, если он отсутствует

—name, -n <name> — имя твиттера

-D свойство = значение — устанавливает значение системного свойства Java.