Apache Flume - fonte NetCat
Este capítulo dá um exemplo para explicar como você pode gerar eventos e, subsequentemente, registrá-los no console. Para isso, estamos usando oNetCat fonte e o logger Pia.
Pré-requisitos
Para executar o exemplo fornecido neste capítulo, você precisa instalar Flume.
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 umNetCat Source, Memory channel, e um logger sink.
Fonte NetCat
Ao configurar a fonte NetCat, temos que especificar uma porta ao configurar a fonte. Agora a fonte (fonte NetCat) escuta a porta dada e recebe cada linha que inserimos nessa porta como um evento individual e a transfere para o coletor através do canal especificado.
Ao configurar esta fonte, você deve fornecer valores para as seguintes propriedades -
channels
Source type - netcat
bind - Nome do host ou endereço IP para vincular.
port - Número da porta que queremos que a fonte escute.
Canal
Estamos usando o memorycanal. Para configurar o canal de memória, você deve fornecer um valor para o tipo de canal. Dada abaixo 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 valor padrão é 100. (opcional).
Logger Sink
Este coletor registra todos os eventos passados para ele. Geralmente, é usado para fins de teste ou depuração. Para configurar este coletor, você deve fornecer os seguintes detalhes.
Channel
type - logger
Arquivo de configuração de exemplo
A seguir está um exemplo do arquivo de configuração. Copie este conteúdo e salve comonetcat.conf na pasta conf do 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
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/netcat.conf
--name NetcatAgent -Dflume.root.logger=INFO,console
Se tudo correr bem, a fonte começa a escutar a porta fornecida. Neste caso, é56565. A seguir está o instantâneo da janela do prompt de comando de uma fonte NetCat que foi iniciada e está ouvindo a porta 56565.
Passando dados para a fonte
Para passar dados para a fonte NetCat, você deve abrir a porta fornecida no arquivo de configuração. Abra um terminal separado e conecte-o à fonte (56565) usando ocurlcomando. Quando a conexão for bem-sucedida, você receberá a mensagem “connected" como mostrado abaixo.
$ curl telnet://localhost:56565
connected
Agora você pode inserir seus dados linha por linha (após cada linha, você deve pressionar Enter). A fonte NetCat recebe cada linha como um evento individual e você receberá uma mensagem recebida “OK”.
Sempre que terminar de passar os dados, você pode sair do console pressionando (Ctrl+C) Dada a seguir está o instantâneo do console onde nos conectamos à fonte usando ocurl comando.
Cada linha inserida no console acima será recebida como um evento individual pela fonte. Desde que usamos oLogger coletor, esses eventos serão registrados no console (console de origem) por meio do canal especificado (canal de memória neste caso).
O instantâneo a seguir mostra o console NetCat onde os eventos são registrados.