Apache Flume - источник генератора последовательности

В предыдущей главе мы увидели, как получить данные из источника Twitter в HDFS. В этой главе объясняется, как получить данные изSequence generator.

Предпосылки

Чтобы запустить пример, приведенный в этой главе, вам необходимо установить HDFS вместе с Flume. Поэтому проверьте установку Hadoop и запустите HDFS, прежде чем продолжить. (Обратитесь к предыдущей главе, чтобы узнать, как запустить HDFS).

Настройка Flume

Мы должны настроить источник, канал и приемник, используя файл конфигурации в confпапка. В примере, приведенном в этой главе, используетсяsequence generator source, а memory channel, и HDFS sink.

Источник генератора последовательности

Это источник, который постоянно генерирует события. Он поддерживает счетчик, который начинается с 0 и увеличивается на 1. Он используется для целей тестирования. При настройке этого источника вы должны указать значения для следующих свойств:

  • Channels

  • Source type - seq

Канал

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

  • type- В нем указан тип канала. В нашем примере это MemChannel.

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

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

Раковина HDFS

Этот приемник записывает данные в HDFS. Чтобы настроить этот приемник, вы должны предоставить следующие данные.

  • Channel

  • type - hdfs

  • hdfs.path - путь к каталогу в HDFS, в котором будут храниться данные.

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

  • fileType - Это обязательный формат нашего файла HDFS. SequenceFile, DataStream а также CompressedStreamтри типа доступны с этим потоком. В нашем примере мы используемDataStream.

  • writeFormat - Может быть текстовым или записываемым.

  • batchSize- Это количество событий, записанных в файл до того, как он будет сброшен в HDFS. Его значение по умолчанию - 100.

  • rollsize- Это размер файла для запуска прокрутки. Значение по умолчанию - 100.

  • rollCount- Это количество событий, записанных в файл перед его прокруткой. Его значение по умолчанию - 10.

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

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

# Naming the components on the current agent 

SeqGenAgent.sources = SeqSource   
SeqGenAgent.channels = MemChannel 
SeqGenAgent.sinks = HDFS 
 
# Describing/Configuring the source 
SeqGenAgent.sources.SeqSource.type = seq
  
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs 
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log 
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream 
 
# Describing/Configuring the channel 
SeqGenAgent.channels.MemChannel.type = memory 
SeqGenAgent.channels.MemChannel.capacity = 1000 
SeqGenAgent.channels.MemChannel.transactionCapacity = 100 
 
# Binding the source and sink to the channel 
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.channel = MemChannel

Исполнение

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

$ cd $FLUME_HOME 
$./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf 
   --name SeqGenAgent

Если все идет хорошо, источник начинает генерировать порядковые номера, которые будут помещены в HDFS в виде файлов журнала.

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

Проверка HDFS

Вы можете получить доступ к веб-интерфейсу администрирования Hadoop, используя следующий URL-адрес -

http://localhost:50070/

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

Нажмите на Browse the file system и введите путь к каталогу HDFS, в котором вы сохранили данные, созданные генератором последовательности.

В нашем примере путь будет /user/Hadoop/ seqgen_data /. Затем вы можете увидеть список файлов журнала, сгенерированных генератором последовательностей, хранящихся в HDFS, как показано ниже.

Проверка содержимого файла

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