Hem Personliga finanser Loggdata med Flume i HDFS - dummies

Loggdata med Flume i HDFS - dummies

Video: HBW154 - Brewfather Walkthrough 2024

Video: HBW154 - Brewfather Walkthrough 2024
Anonim

Några av de data som hamnar i Hadoop Distributed File System (HDFS) kan landa där via databaslastoperationer eller andra typer av batchprocesser, men vad om du vill fånga upp data som strömmar i dataöverföringar med hög genomströmning, till exempel programloggdata? Apache Flume är det nuvarande vanliga sättet att göra det enkelt, effektivt och säkert.

Apache Flume , ett annat toppnivåprojekt från Apache Software Foundation, är ett distribuerat system för att aggregera och flytta stora mängder strömmande data från olika källor till en centraliserad datalagring.

Ett annat sätt är Flume konstruerat för kontinuerlig intag av data i HDFS. Uppgifterna kan vara vilken typ av data som helst, men Flume är särskilt lämpad för hantering av loggdata, till exempel loggdata från webbservrar. Enheter av data som Flume processer kallas händelser ; Ett exempel på en händelse är en loggpost.

För att förstå hur Flume arbetar inom ett Hadoop-kluster måste du veta att Flume kör som en eller flera agenter, och att varje agent har tre pluggbara komponenter: källor, kanaler och diskbänkar:

  • Källor hämta data och skicka den till kanaler.

  • Kanaler hålla dataköer och fungera som ledningar mellan källor och sänkor, vilket är användbart när inkommande flödeshastighet överstiger utgående flödeshastighet.

  • Sink behandla data som togs från kanaler och leverera den till en destination, till exempel HDFS.

En agent måste ha minst en av varje komponent att köra, och varje agent ingår i sin egen instans av Java Virtual Machine (JVM).

En händelse som skrivs till en kanal av en källa tas inte bort från den kanalen tills en diskbänk tar bort den genom en transaktion. Om ett nätverksfel inträffar, behåller kanalerna sina händelser i kö tills sänkorna kan skriva dem till klustret. En minnes-kanal kan behandla händelser snabbt, men den är flyktig och kan inte återställas, medan en filbaserad kanal erbjuder uthållighet och kan återställas vid fel.

Varje agent kan ha flera källor, kanaler och sänkor, och även om en källa kan skriva till många kanaler kan en sink ta data från endast en kanal.

En agent är bara en JVM som kör Flume och sänkorna för varje agenten nod i Hadoop-klustern skickar data till samlarnoder , som sammanställer data från många agenter innan skriver det till HDFS, där det kan analyseras av andra Hadoop-verktyg.

Agenter kan läggas ihop så att diskbänken från en agent skickar data till källan från en annan agent.Avro, Apaches fjärranslutna call-and-serialization framework är det vanliga sättet att skicka data över ett nätverk med Flume, eftersom det fungerar som ett användbart verktyg för effektiv serialisering eller omvandling av data till ett kompakt binärt format.

I samband med Flume är kompatibilitet viktigt: En Avro-händelse kräver exempelvis en Avro-källa och en diskbänk måste leverera händelser som är lämpliga för destinationen.

Vad som gör den här stora kedjan av källor, kanaler och sänkor arbete är Flume Agent-konfigurationen, som lagras i en lokal textfil som är strukturerad som en Java-egenskapsfil. Du kan konfigurera flera agenter i samma fil. Titta på en provfil, som heter Flume-Agent. konfigurerar det att konfigurera en agent som heter shaman:

# Identifiera komponenterna på agent shaman: shaman. källor = netcat_s1 shaman. sänkor = hdfs_w1 shaman. kanaler = in-mem_c1 # Konfigurera källan: shaman. källor. netcat_s1. typ = netcat shaman. källor. netcat_s1. bind = localhost shaman. källor. netcat_s1. port = 44444 # Beskriv diskbänken: shaman. sänkor. hdfs_w1. typ = hdfs shaman. sänkor. hdfs_w1. HDFS. sökväg = hdfs: // shaman. sänkor. hdfs_w1. HDFS. writeFormat = Text shaman. sänkor. hdfs_w1. HDFS. fileType = DataStream # Konfigurera en kanal som buffrar händelser i minnet: shaman. kanaler. i-mem_c1. typ = minne shaman. kanaler. i-mem_c1. kapacitet = 20000 shaman. kanaler. i-mem_c1. transactionCapacity = 100 # Bind källan och sjunka till kanalen: shaman. källor. netcat_s1. kanaler = in-mem_c1 shaman. sänkor. hdfs_w1. kanaler = in-mem_c1

Konfigurationsfilen innehåller egenskaper för varje källa, kanal och synkronisering i agenten och anger hur de är anslutna. I det här exemplet har agent-shaman en källa som lyssnar på data (meddelanden till netcat) på port 44444, en kanal som buffrar händelsedata i minnet och en sink som loggar händelsedata till konsolen.

Den här konfigurationsfilen kunde ha använts för att definiera flera agenter; här konfigurerar du bara en för att hålla sakerna enkla.

För att starta agenten, använd ett skalskript som heter flume-ng, som finns i bin-katalogen i Flume-distributionen. Från kommandoraden, utfärda agenten kommandot, specificera sökvägen till konfigurationsfilen och agenten namn.

Följande provkommando startar Flume-agenten:

flume-ng-agent -f / -n shaman

Flume-agens logg ska ha poster som verifierar att källan, kanalen och sinken startade framgångsrikt.

För att testa konfigurationen kan du telnet till port 44444 från en annan terminal och skicka Flume en händelse genom att skriva in en godtycklig textsträng. Om allt går bra skickar den ursprungliga Flume-terminalen händelsen i ett loggmeddelande som du ska kunna se i agenten logg.

Loggdata med Flume i HDFS - dummies

Redaktörens val

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...