Zuhause Persönliche Finanzen Protokollieren von Daten mit Flume in HDFS - Dummys

Protokollieren von Daten mit Flume in HDFS - Dummys

Video: PIPIEX | Tutorial | #011 | Daten protokollieren 2024

Video: PIPIEX | Tutorial | #011 | Daten protokollieren 2024
Anonim

Einige der Daten, die im Hadoop Distributed File System (HDFS) landen, können dort über Datenbankladevorgänge oder andere Arten von Batch-Prozessen landen. Wenn Sie die Daten erfassen möchten, die in Datenströmen mit hohem Durchsatz fließen, z. B. Anwendungsprotokolldaten? Apache Flume ist der derzeit übliche Weg, dies einfach, effizient und sicher zu machen.

Apache Flume , ein weiteres Top-Level-Projekt der Apache Software Foundation, ist ein verteiltes System zur Aggregation und Übertragung großer Mengen von Streaming-Daten aus verschiedenen Quellen an einen zentralen Datenspeicher.

Anders ausgedrückt ist Flume für die kontinuierliche Aufnahme von Daten in HDFS ausgelegt. Bei den Daten kann es sich um beliebige Daten handeln, aber Flume eignet sich besonders gut für die Verarbeitung von Protokolldaten, wie z. B. Protokolldaten von Webservern. Einheiten der Daten, die Flume verarbeitet, werden Ereignisse genannt; Ein Beispiel für ein Ereignis ist ein Protokollsatz.

Um zu verstehen, wie Flume innerhalb eines Hadoop-Clusters funktioniert, müssen Sie wissen, dass Flume als ein oder mehrere Agenten ausgeführt wird und dass jeder Agent drei steckbare Komponenten hat: Quellen, Kanäle und Senken:

  • Quellen rufen Daten ab und senden sie an Kanäle.

  • Kanäle enthalten Datenwarteschlangen und dienen als Leitungen zwischen Quellen und Senken, was nützlich ist, wenn die eingehende Flussrate die ausgehende Flussrate übersteigt.

  • Sinkt verarbeitet Daten, die von Kanälen erfasst wurden, und überträgt sie an ein Ziel, z. B. HDFS.

Ein Agent muss mindestens eine Komponente ausführen, und jeder Agent ist in seiner eigenen Instanz der Java Virtual Machine (JVM) enthalten.

Ein Ereignis, das von einer Quelle in einen Kanal geschrieben wird, wird erst dann aus diesem Kanal entfernt, wenn es von einer Senke durch eine Transaktion entfernt wird. Wenn ein Netzwerkfehler auftritt, behalten Kanäle ihre Ereignisse in Warteschlange, bis die Senken sie in den Cluster schreiben können. Ein speicherinterner Kanal kann Ereignisse schnell verarbeiten, ist jedoch flüchtig und kann nicht wiederhergestellt werden, während ein dateibasierter Kanal Persistenz bietet und im Fehlerfall wiederhergestellt werden kann.

Jeder Agent kann mehrere Quellen, Kanäle und Senken haben, und obwohl eine Quelle auf viele Kanäle schreiben kann, kann eine Senke Daten von nur einem Kanal aufnehmen.

Ein Agent ist nur eine JVM, die Flume ausführt, und die Senken für jeden Agentenknoten im Hadoop-Cluster senden Daten an Collector-Knoten , die die Daten von vielen Agenten aggregieren. Schreiben Sie es in HDFS, wo es von anderen Hadoop-Tools analysiert werden kann.

Agenten können miteinander verkettet werden, sodass die Senke von einem Agenten Daten von einem anderen Agenten an die Quelle sendet.Avro, das Remote-Call-and-Serialization-Framework von Apache, ist die übliche Art, Daten mit Flume über ein Netzwerk zu senden, da es als nützliches Werkzeug für die effiziente Serialisierung oder Umwandlung von Daten in ein kompaktes Binärformat dient.

Im Zusammenhang mit Flume ist die Kompatibilität wichtig: Ein Avro-Ereignis erfordert beispielsweise eine Avro-Quelle, und eine Senke muss Ereignisse liefern, die für das Ziel geeignet sind.

Was diese große Kette von Quellen, Kanälen und Senken ausmacht, ist die Flume-Agentenkonfiguration, die in einer lokalen Textdatei gespeichert ist, die wie eine Java-Eigenschaftsdatei strukturiert ist. Sie können mehrere Agenten in derselben Datei konfigurieren. Schauen Sie sich eine Beispieldatei an, die als flume-agent bezeichnet wird. conf - es wird ein Agent namens shaman konfiguriert:

# Identifizieren Sie die Komponenten auf dem Agenten shaman: shaman. Quellen = netcat_s1 Schamane. Senken = hdfs_w1 Schamane. channels = in-mem_c1 # Konfiguriere die Quelle: Schamane. Quellen. netcat_s1. Typ = Netcat Schamane. Quellen. netcat_s1. binden = localhost Schamane. Quellen. netcat_s1. port = 44444 # Beschreibe die Spüle: Schamane. sinkt. hdfs_w1. Typ = hdfs Schamane. sinkt. hdfs_w1. hdfs. Pfad = hdfs: // Schamane. sinkt. hdfs_w1. hdfs. writeFormat = Textschamane. sinkt. hdfs_w1. hdfs. fileType = DataStream # Konfigurieren Sie einen Kanal, der Ereignisse im Speicher puffert: shaman. Kanäle. in-mem_c1. Typ = Gedächtnisschamane. Kanäle. in-mem_c1. Kapazität = 20000 Schamane. Kanäle. in-mem_c1. transactionCapacity = 100 # Binde die Quelle und die Senke an den Kanal: Schamane. Quellen. netcat_s1. Kanäle = In-mem_c1 Schamane. sinkt. hdfs_w1. channels = in-mem_c1

Die Konfigurationsdatei enthält Eigenschaften für jede Quelle, jeden Kanal und jede Senke im Agenten und gibt an, wie sie verbunden sind. In diesem Beispiel hat Agent Schamane eine Quelle, die Daten (Nachrichten an Netcat) auf Port 44444 abliest, einen Kanal, der Ereignisdaten im Speicher puffert, und eine Senke, die Ereignisdaten an die Konsole protokolliert.

Diese Konfigurationsdatei könnte verwendet worden sein, um mehrere Agenten zu definieren. Hier konfigurieren Sie nur eines, um die Dinge einfach zu halten.

Verwenden Sie zum Starten des Agenten ein Shell-Skript namens flume-ng, das sich im bin-Verzeichnis der Flume-Distribution befindet. Geben Sie über die Befehlszeile den Befehl agent aus und geben Sie den Pfad zur Konfigurationsdatei und den Namen des Agenten an.

Der folgende Beispielbefehl startet den Flume-Agenten:

flume-ng agent -f / -n Schaman

Das Log des Flume-Agenten sollte Einträge enthalten, die bestätigen, dass die Quelle, der Kanal und die Senke erfolgreich gestartet wurden.

Um die Konfiguration weiter zu testen, können Sie von einem anderen Terminal aus eine Verbindung mit Port 44444 herstellen und Flume ein Ereignis senden, indem Sie eine beliebige Textzeichenfolge eingeben. Wenn alles in Ordnung ist, gibt das ursprüngliche Flume-Terminal das Ereignis in einer Protokollnachricht aus, die Sie im Protokoll des Agenten sehen können.

Protokollieren von Daten mit Flume in HDFS - Dummys

Die Wahl des Herausgebers

Netzwerkgrundlagen: IPv6-Adresse Vereinfachte Notation - Dummies

Netzwerkgrundlagen: IPv6-Adresse Vereinfachte Notation - Dummies

Bei der Arbeit mit IPv6-Adressen kann es viel Zeit in Anspruch nehmen. schreibe deine Adressen - immerhin sind sie 128 Bit lang. Um das Leben einfacher zu machen, gibt es einige Regeln, die Sie verwenden können, um diese Schreibweise zu verdichten: Führende Nullen in der Adresse sind optional. Für einen Adressblock wäre also 0A45 gleich A45, ...

Netzwerkgrundlagen: IP-Netzwerkklassen - Dummies

Netzwerkgrundlagen: IP-Netzwerkklassen - Dummies

Netzwerkadressierungsarchitektur unterteilt den Adressraum für Internet Protocol Version 4 (IPv4 ) in fünf Adressklassen. Jede Klasse, die in den ersten vier Bits der Adresse codiert ist, definiert entweder eine andere Netzwerkgröße, d.h. e. Anzahl der Hosts für Unicast-Adressen (Klassen A, B, C) oder Multicast-Netzwerk (Klasse D). Die fünfte Klasse (E) address ...

Netzwerkgrundlagen: Netzwerkport Übersicht - Dummys

Netzwerkgrundlagen: Netzwerkport Übersicht - Dummys

In TCP / IP- und UDP-Netzwerken ist ein Port ein Endpunkt eine logische Verbindung. Die Portnummer gibt an, um welchen Port es sich handelt. Port 80 wird beispielsweise für HTTP-Datenverkehr verwendet. Wenn Sie einen Befehl wie netstat -n unter Microsoft Windows oder Linux verwenden, sehen Sie eine Auflistung der lokalen Adressen ...

Die Wahl des Herausgebers

Excel-Dashboards: Wie Sie Ihr erstes Makro aufzeichnen - Dummies

Excel-Dashboards: Wie Sie Ihr erstes Makro aufzeichnen - Dummies

Wenn Sie ein Anfänger auf dem Dashboard sind Automatisierung in Excel ist es unwahrscheinlich, dass Sie den VBA-Code (Visual Basic für Applikationen) von Hand schreiben können, um Makros zu erstellen. Ohne vollständige Kenntnis des Objektmodells und der Syntax von Excel wäre das Schreiben des benötigten Codes für die meisten Anfänger unmöglich. Hier können Sie ein Makro aufzeichnen ...

Excel-Formelberechnungsmodi - Dummys

Excel-Formelberechnungsmodi - Dummys

Standardmäßig ist Excel so eingestellt, dass es automatisch neu berechnet wird. Wenn Sie eine der Zellen ändern, auf die in einer bestimmten Formel verwiesen wird, berechnet Excel diese Formel automatisch neu, sodass ein korrektes Ergebnis basierend auf den Änderungen in den Zellbezügen zurückgegeben wird. Wenn die Formel, die neu berechnet wird, auch als Zellenreferenz in anderen verwendet wird ...

Excel Formelfehler - Dummies

Excel Formelfehler - Dummies

Es ist nicht immer glatt, wenn Sie mit Excel-Formeln arbeiten. Manchmal gibt eine Formel einen Fehlerwert anstelle des erwarteten Werts zurück. Excel hilft Ihnen, das Problem zu identifizieren, indem Sie einen von sieben Fehlerwerten zurückgeben: # DIV / 0! , # N / A, #NAME? , #NULL! , #NUM! , #REF! und #WERT! , erklärt in der folgenden Liste: # DIV / 0! : ...

Die Wahl des Herausgebers

Teilen, Weiterverbreiten und Kommentieren von Google+ Posts - Dummies

Teilen, Weiterverbreiten und Kommentieren von Google+ Posts - Dummies

, Wenn Sie mit der Verwendung und Veröffentlichung beginnen Bei Google+ möchten Sie gelegentlich Links und Bilder teilen, die Beiträge anderer freigeben, ihre Beiträge kommentieren und andere in Ihren eigenen Google+ Beiträgen erwähnen. Vielleicht fragen Sie sich auch, wie Sie andere dazu bringen, Ihre eigenen Beiträge öfter zu kommentieren. Teilen von Links und Bildern in Google+ So geben Sie ein ...

Teilen Ihrer Google+ Posts mit bestimmten Personen - Dummies

Teilen Ihrer Google+ Posts mit bestimmten Personen - Dummies

Beiträge auf Google+ sind ganz einfach und können posten Text, Links, Fotos, Videos und sogar Ihren aktuellen Standort. Der schwierigste Teil des Beitrags auf Google+ besteht darin, auszuwählen, wen Sie Ihren Beitrag sehen möchten. Google+ verwendet Ihre Kreise, um festzulegen, wer Ihre Beiträge sehen kann. Kreise sind etwas einfacher als Listen, weil ...

Taggen von Personen in Google+ Fotos - Dummies

Taggen von Personen in Google+ Fotos - Dummies

Sie können Personen in Ihren Kreisen auf jedem Foto auf Google+ markieren. Wenn Sie eine Person in einem Foto taggen, wird diese Person über ihre Google+ Benachrichtigungen benachrichtigt. Sie können dann das Tag entfernen oder genehmigen, und das Foto wird mit dem Tag des Namens dieser Person darin angezeigt. Um jemanden zu markieren, ...