Apache Flume-handledning: Twitter-dataströmning



Denna blogg för Apache Flume-handledning förklarar grunderna för Apache Flume och dess funktioner. Det kommer också att visa Twitter-streaming med Apache Flume.

I den här Apache Flume-handledningsbloggen kommer vi att förstå hur Flume hjälper till att strömma data från olika källor. Men innan det, låt oss förstå vikten av datainmatning. Dataintag är det första och viktiga steget för att bearbeta och analysera data och därefter härleda affärsvärden. Det finns flera källor från vilka data samlas in i en organisation.

Låt oss prata om en annan viktig anledning till att Flume blev så populär. Jag hoppas att du kanske känner till , som används enormt i branschen eftersom den kan lagra alla typer av data. Flume kan enkelt integreras med Hadoop och dumpa ostrukturerad såväl som semistrukturerad data på HDFS, vilket kompletterar Hadoops kraft. Det är därför Apache Flume är en viktig del av Hadoop Ecosystem.





I den här Apache Flume-handledningsbloggen kommer vi att täcka:



Vi kommer att börja denna Flume-handledning genom att diskutera vad som är Apache Flume. Sedan kommer vi att förstå fördelarna med att använda Flume.

Apache Flume Tutorial: Introduktion till Apache Flume

Apache Flume-logotyp - Apache Flume Tutorial - EdurekaApache Flume är ett verktyg för datainmatning i HDFS. Den samlar in, aggregerar och transporterar stora mängder strömmande data som loggfiler, händelser från olika källor som nätverkstrafik, sociala medier, e-postmeddelanden etc. till HDFS.Flume är en mycket pålitlig och distribuerad.

Huvudidén bakom Flumes design är att fånga strömmande data från olika webbservrar till HDFS. Den har enkel och flexibel arkitektur baserad på strömmande dataflöden. Det är feltolerant och ger tillförlitlighetsmekanism för feltolerans och felåterställning.



Efter att ha förstått vad som är Flume, låt oss nu gå vidare i denna Flume Tutorial-blogg och förstå fördelarna med Apache Flume. Därefter kommer vi att titta på arkitekturen i Flume och försöka förstå hur den fungerar fundamentalt.

hur man genererar en slumpmässig sträng i Java

Apache Flume-handledning: Fördelar med Apache Flume

Det finns flera fördelar med Apache Flume vilket gör det till ett bättre val framför andra. Fördelarna är:

  • Flume är skalbar, pålitlig, feltolerant och anpassningsbar för olika källor och sänkor.
  • Apache Flume kan lagra data i centraliserade butiker (dvs. data levereras från en enda butik) som HBase & HDFS.
  • Rök är horisontellt skalbart.
  • Om läshastigheten överstiger skrivhastigheten ger Flume ett stadigt flöde av data mellan läs- och skrivoperationer.
  • Flume tillhandahåller pålitlig leverans av meddelanden. Transaktionerna i Flume är kanalbaserade där två transaktioner (en avsändare och en mottagare) upprätthålls för varje meddelande.
  • Med Flume kan vi ta in data från flera servrar till Hadoop.
  • Det ger oss en lösning som är pålitlig och distribuerad och hjälper oss att samla in, aggregera och flytta stora mängder datamängder som Facebook, Twitter och e-handelswebbplatser.
  • Det hjälper oss att få in online-streamingdata från olika källor som nätverkstrafik, sociala medier, e-postmeddelanden, loggfiler etc. i HDFS.
  • Den stöder en stor uppsättning källor och destinationstyper.

Arkitekturen är en som ger Apache Flume dessa fördelar. Nu, som vi vet fördelarna med Apache Flume, kan vi gå vidare och förstå Apache Flume-arkitekturen.

Apache Flume Tutorial: Flume Architecture

Låt oss nu förstå arkitekturen för Flume från nedanstående diagram:

Det finns en Flume-agent som tar in strömmande data från olika datakällor till HDFS. Från diagrammet kan du enkelt förstå att webbservern anger datakällan. Twitter är en av de kända källorna för streaming av data.

Rökmedlet har tre komponenter: källa, handfat och kanal.

    1. Källa : Den accepterar data från den inkommande strömlinjen och lagrar data i kanalen.
    2. Kanal : I allmänhet är läshastigheten snabbare än skrivhastigheten. Således behöver vi lite buffert för att matcha läs- och skrivhastighetsskillnaden. I grund och botten fungerar bufferten som en mellanlagring som lagrar data som överförs tillfälligt och därför förhindrar dataförlust. På samma sätt fungerar kanalen som lokal lagring eller tillfällig lagring mellan datakällan och ihållande data i HDFS.
    3. Handfat : Sedan samlar vår sista komponent, dvs Sink, in data från kanalen och förbinder eller skriver data i HDFS permanent.

Nu när vi vet hur Apache Flume fungerar, låt oss ta en titt på en praktisk sak där vi kommer att sänka Twitter-data och lagra den i HDFS.

Apache Flume Tutorial: Streaming Twitter Data

I detta praktiska kommer vi att strömma data från Twitter genom att använda Flume och sedan lagra data i HDFS som visas i bilden nedan.

Det första steget är att skapa en Twitter-applikation. För detta måste du först gå till denna webbadress: https://apps.twitter.com/ och logga in på ditt Twitter-konto. Gå till skapa applikationsfliken som visas i bilden nedan.

Skapa sedan en applikation enligt bilden nedan.

När du har skapat den här applikationen hittar du Key & Access-token. Kopiera nyckeln och åtkomsttoken. Vi skickar dessa tokens i vår Flume-konfigurationsfil för att ansluta till den här applikationen.

Skapa nu en flume.conf-fil i flumens rotkatalog som visas i bilden nedan. Som vi diskuterade, i Flume's Architecture, kommer vi att konfigurera vår Source, Sink och Channel. Vår källa är Twitter, varifrån vi strömmar data och vår Sink är HDFS, där vi skriver data.

I källkonfiguration skickar vi Twitter-källtypen som org.apache.flume.source.twitter.TwitterSource. Sedan skickar vi alla fyra tokens som vi fick från Twitter. Äntligen i källkonfigurationen skickar vi de nyckelord som vi ska hämta tweets på.

I Sink-konfigurationen ska vi konfigurera HDFS-egenskaper. Vi ställer in HDFS-sökväg, skrivformat, filtyp, batchstorlek etc. Äntligen kommer vi att ställa in minneskanal enligt bilden nedan.

Nu är vi redo för körning. Låt oss gå vidare och utföra detta kommando:

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

Efter att ha utfört detta kommando ett tag och sedan kan du lämna terminalen med CTRL + C. Sedan kan du gå vidare i din Hadoop-katalog och kontrollera den nämnda sökvägen, oavsett om filen skapas eller inte.

skapa singleton-klass i java

Ladda ner filen och öppna den. Du får något som visas i bilden nedan.

Jag hoppas att den här bloggen är informativ och ger ett mervärde för dig. Om du är intresserad av att lära dig mer kan du gå igenom detta som berättar om Big Data och hur Hadoop löser utmaningar relaterade till Big Data.

Nu när du har förstått Apache Flume, kolla in av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka-kursen Big Data Hadoop-certifiering hjälper eleverna att bli experter på HDFS, Garn, MapReduce, Pig, Hive, HBase, Oozie, Flume och Sqoop med realtidsanvändningsfall på Retail, Social Media, Aviation, Tourism, Finance.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.