Учебники

Apache Flume – NetCat Source

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

Предпосылки

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

Конфигурирование Flume

Мы должны настроить источник, канал и приемник, используя файл конфигурации в папке conf . Пример, приведенный в этой главе, использует источник NetCat, канал памяти и приемник логгера .

NetCat Source

При настройке источника NetCat мы должны указать порт при настройке источника. Теперь источник (источник NetCat) прослушивает данный порт и получает каждую строку, которую мы ввели в этот порт, как отдельное событие и передает его в приемник по указанному каналу.

При настройке этого источника вы должны указать следующие свойства:

  • каналы

  • Тип источника – netcat

  • bind – имя хоста или IP-адрес для привязки.

  • порт – номер порта, к которому мы хотим, чтобы источник прослушивал.

каналы

Тип источника – netcat

bind – имя хоста или IP-адрес для привязки.

порт – номер порта, к которому мы хотим, чтобы источник прослушивал.

канал

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

  • тип – содержит тип канала. В нашем примере типом является MemChannel .

  • Емкость – это максимальное количество событий, хранящихся в канале. Его значение по умолчанию – 100. (необязательно)

  • TransactionCapacity – это максимальное количество событий, которые канал принимает или отправляет. Его значение по умолчанию – 100. (необязательно).

тип – содержит тип канала. В нашем примере типом является MemChannel .

Емкость – это максимальное количество событий, хранящихся в канале. Его значение по умолчанию – 100. (необязательно)

TransactionCapacity – это максимальное количество событий, которые канал принимает или отправляет. Его значение по умолчанию – 100. (необязательно).

Logger Sink

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

  • канал

  • тип – регистратор

канал

тип – регистратор

Пример файла конфигурации

Ниже приведен пример файла конфигурации. Скопируйте этот контент и сохраните как netcat.conf в папке conf Flume.

# Naming the components on the current agent
NetcatAgent.sources = Netcat   
NetcatAgent.channels = MemChannel 
NetcatAgent.sinks = LoggerSink  

# Describing/Configuring the source 
NetcatAgent.sources.Netcat.type = netcat 
NetcatAgent.sources.Netcat.bind = localhost
NetcatAgent.sources.Netcat.port = 56565  

# Describing/Configuring the sink 
NetcatAgent.sinks.LoggerSink.type = logger  

# Describing/Configuring the channel 
NetcatAgent.channels.MemChannel.type = memory 
NetcatAgent.channels.MemChannel.capacity = 1000 
NetcatAgent.channels.MemChannel.transactionCapacity = 100 
 
# Bind the source and sink to the channel 
NetcatAgent.sources.Netcat.channels = MemChannel
NetcatAgent.sinks.LoggerSink.channel = MemChannel

выполнение

Просмотрите домашний каталог Flume и запустите приложение, как показано ниже.

$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf 
   --name NetcatAgent -Dflume.root.logger=INFO,console

Если все идет хорошо, источник начинает прослушивать данный порт. В данном случае это 56565 . Ниже приведен снимок окна командной строки источника NetCat, который запустился и прослушивает порт 56565.

выполнение

Передача данных в источник

Чтобы передать данные в источник NetCat, вы должны открыть порт, указанный в файле конфигурации. Откройте отдельный терминал и подключитесь к источнику (56565) с помощью команды curl . После успешного подключения вы получите сообщение « подключено », как показано ниже.

$ curl telnet://localhost:56565 
connected 

Теперь вы можете вводить свои данные построчно (после каждой строки вы должны нажать Enter). Источник NetCat получает каждую строку как отдельное событие, и вы получите полученное сообщение « ОК ».

Всякий раз, когда вы закончите с передачей данных, вы можете выйти из консоли, нажав ( Ctrl & plus; C ). Ниже приведен снимок консоли, где мы подключились к источнику с помощью команды curl .

Передача данных

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

На следующем снимке показана консоль NetCat, в которой регистрируются события.