После установки Flume нам необходимо настроить его с помощью файла конфигурации, который является файлом свойств Java и содержит пары ключ-значение . Нам нужно передать значения ключам в файле.
В конфигурационном файле Flume нам нужно:
- Назовите компоненты текущего агента.
- Опишите / настройте источник.
- Опишите / настройте приемник.
- Опишите / настройте канал.
- Свяжите источник и приемник с каналом.
Обычно у нас может быть несколько агентов в Flume. Мы можем дифференцировать каждого агента, используя уникальное имя. И используя это имя, мы должны настроить каждого агента.
Наименование компонентов
Прежде всего, вам нужно назвать / перечислить компоненты, такие как источники, приемники и каналы агента, как показано ниже.
agent_name.sources = source_name agent_name.sinks = sink_name agent_name.channels = channel_name
Flume поддерживает различные источники, приемники и каналы. Они перечислены в таблице ниже.
источники | каналы | Раковины |
---|---|---|
|
|
|
Вы можете использовать любой из них. Например, если вы передаете данные 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.