Apache Flume-zelfstudie: Twitter-gegevensstreaming



Deze Apache Flume-tutorialblog legt de basisprincipes van Apache Flume en zijn functies uit. Het toont ook Twitter-streaming met Apache Flume.

In deze Apache Flume-tutorialblog zullen we begrijpen hoe Flume helpt bij het streamen van gegevens uit verschillende bronnen. Maar laten we eerst het belang van gegevensopname begrijpen. Gegevensopname is de eerste en belangrijke stap om gegevens te verwerken en te analyseren, en er vervolgens bedrijfswaarden uit af te leiden. Er zijn meerdere bronnen waaruit gegevens worden verzameld in een organisatie.

Laten we het hebben over een andere belangrijke reden waarom Flume zo populair werd. Ik hoop dat je er misschien bekend mee bent , dat enorm wordt gebruikt in de industrie omdat het allerlei soorten gegevens kan opslaan. Flume kan eenvoudig worden geïntegreerd met Hadoop en zowel ongestructureerde als semi-gestructureerde gegevens op HDFS dumpen, wat de kracht van Hadoop aanvult. Dit is waarom Apache Flume een belangrijk onderdeel is van Hadoop Ecosystem.





In deze Apache Flume-tutorialblog behandelen we:



We beginnen deze Flume-tutorial door te bespreken wat Apache Flume is. Als we verder gaan, zullen we de voordelen van het gebruik van Flume begrijpen.

Apache Flume-zelfstudie: inleiding tot Apache Flume

Apache Flume-logo - Apache Flume-zelfstudie - EdurekaApache Flume is een tool voor het opnemen van gegevens in HDFS. Het verzamelt, aggregeert en transporteert grote hoeveelheden streaminggegevens zoals logbestanden, gebeurtenissen uit verschillende bronnen zoals netwerkverkeer, sociale media, e-mailberichten enz. Naar HDFS.Flume is een zeer betrouwbare en gedistribueerde.

Het belangrijkste idee achter het ontwerp van de Flume is om streaminggegevens van verschillende webservers naar HDFS vast te leggen. Het heeft een eenvoudige en flexibele architectuur op basis van streaming datastromen. Het is fouttolerant en biedt een betrouwbaarheidsmechanisme voor fouttolerantie en herstel van storingen.



Nadat we hebben begrepen wat Flume is, gaan we nu verder in deze Flume Tutorial-blog en begrijpen we de voordelen van Apache Flume. Vervolgens gaan we verder, kijken we naar de architectuur van Flume en proberen we te begrijpen hoe het fundamenteel werkt.

hoe compileer ik een Java-programma

Apache Flume-zelfstudie: Voordelen van Apache Flume

Er zijn verschillende voordelen van Apache Flume, waardoor het een betere keuze is dan andere. De voordelen zijn:

  • Flume is schaalbaar, betrouwbaar, fouttolerant en aanpasbaar voor verschillende bronnen en putten.
  • Apache Flume kan gegevens opslaan in gecentraliseerde winkels (d.w.z. gegevens worden geleverd vanuit een enkele winkel) zoals HBase en HDFS.
  • Flume is horizontaal schaalbaar.
  • Als de leessnelheid de schrijfsnelheid overschrijdt, zorgt Flume voor een gestage stroom gegevens tussen lees- en schrijfbewerkingen.
  • Flume biedt betrouwbare berichtaflevering. De transacties in Flume zijn kanaalgebaseerd, waarbij voor elk bericht twee transacties (een afzender en een ontvanger) worden bijgehouden.
  • Met Flume kunnen we gegevens van meerdere servers in Hadoop opnemen.
  • Het geeft ons een oplossing die betrouwbaar en gedistribueerd is en ons helpt bij het verzamelen, samenvoegen en verplaatsen van grote hoeveelheden gegevenssets zoals Facebook, Twitter en e-commerce websites.
  • Het helpt ons om online streaminggegevens uit verschillende bronnen zoals netwerkverkeer, sociale media, e-mailberichten, logbestanden enz. In HDFS op te nemen.
  • Het ondersteunt een groot aantal typen bronnen en bestemmingen.

De architectuur is er een die Apache Flume voorziet van deze voordelen. Nu we de voordelen van Apache Flume kennen, gaan we verder en begrijpen we de Apache Flume-architectuur.

Apache Flume-zelfstudie: Flume-architectuur

Laten we nu de architectuur van Flume begrijpen uit het onderstaande diagram:

Er is een Flume-agent die de streaminggegevens van verschillende gegevensbronnen naar HDFS opneemt. Uit het diagram kunt u gemakkelijk opmaken dat de webserver de gegevensbron aangeeft. Twitter is een van de bekende bronnen voor het streamen van gegevens.

De stroomgoot heeft 3 componenten: bron, afvoer en kanaal.

    1. Bron : Het accepteert de gegevens van de inkomende stroomlijn en slaat de gegevens op in het kanaal.
    2. Kanaal : Over het algemeen is de leessnelheid hoger dan de schrijfsnelheid. We hebben dus wat buffer nodig om het verschil in lees- en schrijfsnelheid te evenaren. In wezen fungeert de buffer als een tussenopslag die de gegevens die tijdelijk worden overgedragen opslaat en daardoor gegevensverlies voorkomt. Op dezelfde manier fungeert het kanaal als de lokale opslag of een tijdelijke opslag tussen de gegevensbron en permanente gegevens in de HDFS.
    3. Wastafel : Dan verzamelt onze laatste component, namelijk Sink, de gegevens van het kanaal en legt of schrijft de gegevens permanent in de HDFS.

Nu we weten hoe Apache Flume werkt, laten we eens kijken naar een praktijk waarin we de Twitter-gegevens zullen laten zinken en opslaan in de HDFS.

Apache Flume-zelfstudie: Twitter-gegevens streamen

In dit practicum zullen we gegevens van Twitter streamen met Flume en de gegevens vervolgens opslaan in HDFS, zoals weergegeven in de onderstaande afbeelding.

De eerste stap is het maken van een Twitter-applicatie. Hiervoor moet je eerst naar deze url gaan: https://apps.twitter.com/ en log in op uw Twitter-account. Ga naar het toepassingstabblad maken zoals weergegeven in de onderstaande afbeelding.

Maak vervolgens een applicatie zoals weergegeven in de onderstaande afbeelding.

Nadat u deze applicatie heeft gemaakt, vindt u Key & Access-token. Kopieer de sleutel en het toegangstoken. We zullen deze tokens doorgeven in ons Flume-configuratiebestand om verbinding te maken met deze applicatie.

Maak nu een flume.conf-bestand in de hoofdmap van de flume, zoals weergegeven in de onderstaande afbeelding. Zoals we hebben besproken, zullen we in de Flume's Architecture onze Source, Sink en Channel configureren. Onze bron is Twitter, van waaruit we de gegevens streamen en onze Sink is HDFS, waar we de gegevens naartoe schrijven.

In de bronconfiguratie geven we het Twitter-brontype door als org.apache.flume.source.twitter.TwitterSource. Vervolgens geven we alle vier de tokens door die we van Twitter hebben ontvangen. Eindelijk geven we in de bronconfiguratie de trefwoorden door waarop we de tweets gaan ophalen.

In de Sink-configuratie gaan we HDFS-eigenschappen configureren. We zullen het HDFS-pad, het schrijfformaat, het bestandstype, de batchgrootte enz. Instellen. Eindelijk gaan we het geheugenkanaal instellen zoals weergegeven in de onderstaande afbeelding.

Nu zijn we helemaal klaar voor executie. Laten we doorgaan en deze opdracht uitvoeren:

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

Nadat u deze opdracht een tijdje hebt uitgevoerd, kunt u de terminal verlaten met CTRL + C. Vervolgens kunt u doorgaan in uw Hadoop-directory en het genoemde pad controleren, of het bestand nu is gemaakt of niet.

implementeer gekoppelde lijst in c

Download het bestand en open het. U krijgt iets zoals weergegeven in de onderstaande afbeelding.

Ik hoop dat deze blog informatief en een meerwaarde voor je is. Als u meer wilt weten, kunt u dit doornemen die u vertelt over Big Data en hoe Hadoop uitdagingen met betrekking tot Big Data oplost.

Nu je Apache Flume hebt begrepen, kun je het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka Big Data Hadoop-certificeringstraining helpt leerlingen expert te worden in HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume en Sqoop met behulp van real-time use cases op het gebied van Retail, Social Media, Aviation, Tourism, Finance.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.