Esercitazione su Apache Flume: streaming di dati su Twitter



Questo blog tutorial di Apache Flume spiega i fondamenti di Apache Flume e le sue caratteristiche. Mostrerà anche lo streaming di Twitter utilizzando Apache Flume.

In questo blog tutorial di Apache Flume, capiremo come Flume aiuta nello streaming di dati da varie fonti. Ma prima di questo cerchiamo di capire l'importanza dell'inserimento dei dati. L'inserimento dei dati è il passaggio iniziale e importante per elaborare e analizzare i dati e quindi ricavarne i valori aziendali. Esistono più origini da cui vengono raccolti i dati in un'organizzazione.

Parliamo di un altro motivo importante per cui Flume è diventato così popolare. Spero che tu possa avere familiarità con , che viene utilizzato moltissimo nel settore in quanto può memorizzare tutti i tipi di dati. Flume può facilmente integrarsi con Hadoop ed eseguire il dump di dati non strutturati e semi-strutturati su HDFS, complimentandosi con la potenza di Hadoop. Questo è il motivo per cui Apache Flume è una parte importante dell'ecosistema Hadoop.





In questo blog tutorial di Apache Flume, tratteremo:



Inizieremo questo tutorial Flume discutendo su cosa sia Apache Flume. Quindi andando avanti, capiremo i vantaggi dell'utilizzo di Flume.

Esercitazione su Apache Flume: Introduzione ad Apache Flume

Logo di Apache Flume - Tutorial di Apache Flume - EdurekaApache Flume è uno strumento per l'inserimento di dati in HDFS. Raccoglie, aggrega e trasporta grandi quantità di dati di streaming come file di registro, eventi da varie fonti come traffico di rete, social media, messaggi di posta elettronica ecc. A HDFS.Flume è un servizio altamente affidabile e distribuito.

L'idea principale alla base del design del Flume è acquisire dati in streaming da vari server web su HDFS. Ha un'architettura semplice e flessibile basata su flussi di dati in streaming. È tollerante agli errori e fornisce un meccanismo di affidabilità per la tolleranza agli errori e il ripristino degli errori.



Dopo aver capito cos'è Flume, ora avanziamo in questo blog Tutorial Flume e comprendiamo i vantaggi di Apache Flume. Quindi andando avanti, esamineremo l'architettura di Flume e proveremo a capire come funziona fondamentalmente.

menu a discesa in angularjs

Tutorial su Apache Flume: Vantaggi di Apache Flume

Ci sono molti vantaggi di Apache Flume che lo rendono una scelta migliore rispetto ad altri. I vantaggi sono:

  • Flume è scalabile, affidabile, a tolleranza di errore e personalizzabile per diverse sorgenti e sink.
  • Apache Flume può archiviare i dati in archivi centralizzati (cioè i dati vengono forniti da un unico archivio) come HBase e HDFS.
  • Flume è scalabile orizzontalmente.
  • Se la velocità di lettura supera la velocità di scrittura, Flume fornisce un flusso costante di dati tra le operazioni di lettura e scrittura.
  • Flume fornisce una consegna affidabile dei messaggi. Le transazioni in Flume sono basate sul canale in cui vengono mantenute due transazioni (un mittente e un destinatario) per ogni messaggio.
  • Utilizzando Flume, possiamo importare dati da più server in Hadoop.
  • Ci fornisce una soluzione affidabile e distribuita e ci aiuta a raccogliere, aggregare e spostare grandi quantità di set di dati come Facebook, Twitter e siti di e-commerce.
  • Ci aiuta a importare dati di streaming online da varie fonti come traffico di rete, social media, messaggi di posta elettronica, file di registro ecc. In HDFS.
  • Supporta un ampio set di sorgenti e tipi di destinazioni.

L'architettura è quella che offre ad Apache Flume questi vantaggi. Ora, poiché conosciamo i vantaggi di Apache Flume, andiamo avanti e comprendiamo l'architettura di Apache Flume.

Esercitazione su Apache Flume: Architettura Flume

Ora, comprendiamo l'architettura di Flume dal diagramma seguente:

C'è un agente Flume che inserisce i dati di streaming da varie origini dati in HDFS. Dal diagramma, puoi facilmente capire che il server web indica la fonte dei dati. Twitter è una delle famose fonti di dati in streaming.

Il flume agent ha 3 componenti: source, sink e channel.

    1. fonte : Accetta i dati dallo streamline in entrata e memorizza i dati nel canale.
    2. Canale : In generale, la velocità di lettura è maggiore della velocità di scrittura. Quindi, abbiamo bisogno di un buffer per abbinare la differenza di velocità di lettura e scrittura. Fondamentalmente, il buffer funge da memoria intermedia che memorizza i dati trasferiti temporaneamente e quindi previene la perdita di dati. Allo stesso modo, il canale funge da archiviazione locale o archiviazione temporanea tra l'origine dei dati e i dati persistenti nell'HDFS.
    3. Lavello : Quindi, il nostro ultimo componente, ovvero Sink, raccoglie i dati dal canale e salva o scrive i dati nell'HDFS in modo permanente.

Ora che sappiamo come funziona Apache Flume, diamo un'occhiata a una pratica in cui affonderemo i dati di Twitter e li memorizzeremo nell'HDFS.

Esercitazione su Apache Flume: streaming di dati di Twitter

In questa pratica, trasmetteremo i dati da Twitter utilizzando Flume e quindi memorizzeremo i dati in HDFS come mostrato nell'immagine sottostante.

Il primo passo è creare un'applicazione Twitter. Per questo, devi prima andare a questo URL: https://apps.twitter.com/ e accedi al tuo account Twitter. Vai alla scheda di creazione dell'applicazione come mostrato nell'immagine sottostante.

Quindi, crea un'applicazione come mostrato nell'immagine sottostante.

Dopo aver creato questa applicazione, troverai Key & Access token. Copia la chiave e il token di accesso. Passeremo questi token nel nostro file di configurazione Flume per connetterci a questa applicazione.

Ora crea un file flume.conf nella directory principale del flume come mostrato nell'immagine sottostante. Come abbiamo discusso, nell'architettura del Flume, configureremo la nostra sorgente, sink e canale. La nostra fonte è Twitter, da dove stiamo trasmettendo i dati e il nostro Sink è HDFS, dove stiamo scrivendo i dati.

Nella configurazione del codice sorgente stiamo passando il tipo di sorgente Twitter come org.apache.flume.source.twitter.TwitterSource. Quindi, stiamo passando tutti e quattro i token che abbiamo ricevuto da Twitter. Finalmente nella configurazione dei sorgenti stiamo passando le parole chiave su cui andremo a prendere i tweet.

Nella configurazione Sink configureremo le proprietà HDFS. Imposteremo il percorso HDFS, il formato di scrittura, il tipo di file, la dimensione del batch ecc. Infine imposteremo il canale di memoria come mostrato nell'immagine sottostante.

Ora siamo tutti pronti per l'esecuzione. Andiamo avanti ed eseguiamo questo comando:

$ FLUME_HOME / bin / flume-ng agent --conf ./conf/ -f $ FLUME_HOME / flume.conf

Dopo aver eseguito questo comando per un po ', quindi puoi uscire dal terminale usando CTRL + C. Quindi puoi andare avanti nella tua directory Hadoop e controllare il percorso menzionato, indipendentemente dal fatto che il file sia stato creato o meno.

c ++ ordina array di int

Scarica il file e aprilo. Otterrai qualcosa come mostrato nell'immagine qui sotto.

Spero che questo blog sia informativo e un valore aggiunto per te. Se sei interessato a saperne di più, puoi farlo che ti parla dei Big Data e di come Hadoop sta risolvendo le sfide legate ai Big Data.

Ora che hai capito Apache Flume, controlla il file da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione per la certificazione Edureka Big Data Hadoop aiuta gli studenti a diventare esperti in HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume e Sqoop utilizzando casi d'uso in tempo reale nel settore Retail, Social Media, Aviation, Tourism, Finance.

Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.