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.