Apache Flume - Fonte do Gerador de Sequência
No capítulo anterior, vimos como buscar dados da fonte do Twitter para o HDFS. Este capítulo explica como buscar dados deSequence generator.
Pré-requisitos
Para executar o exemplo fornecido neste capítulo, você precisa instalar HDFS junto com Flume. Portanto, verifique a instalação do Hadoop e inicie o HDFS antes de prosseguir. (Consulte o capítulo anterior para saber como iniciar o HDFS).
Configurando Flume
Temos que configurar a fonte, o canal e o coletor usando o arquivo de configuração no confpasta. O exemplo dado neste capítulo usa umsequence generator source, uma memory channel, e um HDFS sink.
Fonte do gerador de sequência
É a fonte que gera os eventos continuamente. Ele mantém um contador que começa em 0 e aumenta em 1. É usado para fins de teste. Ao configurar esta fonte, você deve fornecer valores para as seguintes propriedades -
Channels
Source type - seq
Canal
Estamos usando o memorycanal. Para configurar o canal de memória, você deve fornecer um valor para o tipo de canal. Dada a seguir está a lista de propriedades que você precisa fornecer ao configurar o canal de memória -
type- Contém o tipo de canal. Em nosso exemplo, o tipo é MemChannel.
Capacity- É o número máximo de eventos armazenados no canal. Seu valor padrão é 100. (opcional)
TransactionCapacity- É o número máximo de eventos que o canal aceita ou envia. Seu padrão é 100. (opcional).
HDFS Sink
Este coletor grava dados no HDFS. Para configurar este coletor, você deve fornecer os seguintes detalhes.
Channel
type - hdfs
hdfs.path - o caminho do diretório no HDFS onde os dados devem ser armazenados.
E podemos fornecer alguns valores opcionais com base no cenário. A seguir, são fornecidas as propriedades opcionais do coletor HDFS que estamos configurando em nosso aplicativo.
fileType - Este é o formato de arquivo necessário para nosso arquivo HDFS. SequenceFile, DataStream e CompressedStreamsão os três tipos disponíveis com este fluxo. Em nosso exemplo, estamos usando oDataStream.
writeFormat - Pode ser texto ou gravável.
batchSize- É o número de eventos gravados em um arquivo antes de ser descarregado no HDFS. Seu valor padrão é 100.
rollsize- É o tamanho do arquivo para desencadear um rolo. Seu valor padrão é 100.
rollCount- É o número de eventos gravados no arquivo antes de rolá-lo. Seu valor padrão é 10.
Exemplo - arquivo de configuração
Abaixo está um exemplo do arquivo de configuração. Copie este conteúdo e salve comoseq_gen .conf na pasta conf do 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
Execução
Navegue pelo diretório inicial do Flume e execute o aplicativo conforme mostrado abaixo.
$ cd $FLUME_HOME
$./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf
--name SeqGenAgent
Se tudo correr bem, a fonte começa a gerar números de sequência que serão colocados no HDFS na forma de arquivos de log.
A seguir, é fornecido um instantâneo da janela do prompt de comando que busca os dados gerados pelo gerador de sequência no HDFS.
Verificando o HDFS
Você pode acessar a Hadoop Administration Web UI usando o seguinte URL -
http://localhost:50070/
Clique na lista suspensa chamada Utilitiesno lado direito da página. Você pode ver duas opções, conforme mostrado no diagrama abaixo.
Clique em Browse the file system e insira o caminho do diretório HDFS onde você armazenou os dados gerados pelo gerador de sequência.
Em nosso exemplo, o caminho será /user/Hadoop/ seqgen_data /. Em seguida, você pode ver a lista de arquivos de log gerados pelo gerador de sequência, armazenados no HDFS conforme fornecido abaixo.
Verificando o conteúdo do arquivo
Todos esses arquivos de log contêm números em formato sequencial. Você pode verificar o conteúdo desses arquivos no sistema de arquivos usando ocat comando como mostrado abaixo.