Apache Flume - Sequence Generator Source

Nel capitolo precedente, abbiamo visto come recuperare i dati dalla sorgente Twitter su HDFS. Questo capitolo spiega come recuperare i dati daSequence generator.

Prerequisiti

Per eseguire l'esempio fornito in questo capitolo, è necessario installare HDFS insieme a Flume. Pertanto, verifica l'installazione di Hadoop e avvia l'HDFS prima di procedere ulteriormente. (Fare riferimento al capitolo precedente per informazioni su come avviare HDFS).

Configurazione di Flume

Dobbiamo configurare l'origine, il canale e il sink utilizzando il file di configurazione in confcartella. L'esempio fornito in questo capitolo utilizza un filesequence generator source, a memory channel, e un HDFS sink.

Origine generatore di sequenze

È la fonte che genera continuamente gli eventi. Mantiene un contatore che inizia da 0 e aumenta di 1. Viene utilizzato a scopo di test. Durante la configurazione di questa sorgente, è necessario fornire valori alle seguenti proprietà:

  • Channels

  • Source type - seq

Canale

Stiamo usando il memorycanale. Per configurare il canale di memoria, è necessario fornire un valore al tipo di canale. Di seguito è riportato l'elenco delle proprietà che è necessario fornire durante la configurazione del canale di memoria:

  • type- Contiene il tipo di canale. Nel nostro esempio il tipo è MemChannel.

  • Capacity- È il numero massimo di eventi memorizzati nel canale. Il suo valore predefinito è 100. (opzionale)

  • TransactionCapacity- È il numero massimo di eventi che il canale accetta o invia. Il suo valore predefinito è 100. (opzionale).

Lavello HDFS

Questo sink scrive i dati nell'HDFS. Per configurare questo sink, è necessario fornire i seguenti dettagli.

  • Channel

  • type - hdfs

  • hdfs.path - il percorso della directory in HDFS in cui devono essere archiviati i dati.

E possiamo fornire alcuni valori opzionali basati sullo scenario. Di seguito sono riportate le proprietà opzionali del sink HDFS che stiamo configurando nella nostra applicazione.

  • fileType - Questo è il formato file richiesto del nostro file HDFS. SequenceFile, DataStream e CompressedStreamsono i tre tipi disponibili con questo flusso. Nel nostro esempio, stiamo usando ilDataStream.

  • writeFormat - Potrebbe essere di testo o scrivibile.

  • batchSize- È il numero di eventi scritti in un file prima che venga scaricato nell'HDFS. Il suo valore predefinito è 100.

  • rollsize- È la dimensione del file per attivare un rotolo. Il valore predefinito è 100.

  • rollCount- È il numero di eventi scritti nel file prima che venga eseguito il rollio. Il suo valore predefinito è 10.

Esempio: file di configurazione

Di seguito è riportato un esempio del file di configurazione. Copia questo contenuto e salva con nomeseq_gen .conf nella cartella conf di 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

Esecuzione

Sfoglia la home directory di Flume ed esegui l'applicazione come mostrato di seguito.

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

Se tutto va bene, la sorgente inizia a generare numeri di sequenza che verranno inseriti nell'HDFS sotto forma di file di registro.

Di seguito è riportata un'istantanea della finestra del prompt dei comandi che recupera i dati generati dal generatore di sequenze nell'HDFS.

Verifica dell'HDFS

È possibile accedere all'interfaccia utente Web di amministrazione di Hadoop utilizzando il seguente URL:

http://localhost:50070/

Fare clic sul menu a discesa denominato Utilitiessul lato destro della pagina. Puoi vedere due opzioni come mostrato nel diagramma riportato di seguito.

Clicca su Browse the file system e inserisci il percorso della directory HDFS in cui hai memorizzato i dati generati dal generatore di sequenze.

Nel nostro esempio, il percorso sarà /user/Hadoop/ seqgen_data /. Quindi, è possibile visualizzare l'elenco dei file di registro generati dal generatore di sequenze, archiviati nell'HDFS come indicato di seguito.

Verifica del contenuto del file

Tutti questi file di registro contengono numeri in formato sequenziale. È possibile verificare il contenuto di questi file nel file system utilizzando l'estensionecat comando come mostrato di seguito.