Verwenden von Apache Pig mit Apache Hadoop in HDInsight
Erfahren Sie, wie Apache Pig mit HDInsight verwendet wird.
Apache Pig ist eine Plattform zum Erstellen von Programmen für Apache Hadoop mithilfe einer prozeduralen Sprache namens Pig Latin. Pig ist eine Alternative zu Java für das Erstellen von MapReduce-Lösungen, und es ist in Azure HDInsight enthalten. In der folgenden Tabelle finden Sie verschiedene Möglichkeiten der Verwendung von Pig mit HDInsight:
Gründe für die Verwendung von Apache Pig
Eine der Herausforderungen der Verarbeitung von Daten mithilfe von MapReduce in Hadoop ist die Implementierung der Verarbeitungslogik mit nur einer Karte und einer Reduce-Funktion. Für die komplexe Verarbeitung muss die diese häufig in mehrere MapReduce-Vorgänge unterteilt werden, die miteinander verkettet sind, um das gewünschte Ergebnis zu erzielen.
Pig ermöglicht Ihnen, die Verarbeitung als eine Reihe von Transformationen zu definieren, die die Daten durchlaufen, um die gewünschte Ausgabe zu erzeugen.
Mit der Pig Latin-Sprache können Sie den Datenfluss von Rohdaten durch eine oder mehrere Transformationen beschreiben, um die gewünschte Ausgabe zu erzeugen. Pig Latin-Programme folgen diesem allgemeinen Muster:
Laden: Lesen der zu verändernden Daten aus dem Dateisystem
Transformieren: Manipulation der Daten
Ablage oder Speicherung: Ausgabe der Daten auf dem Bildschirm oder Speicherung zur Weiterverarbeitung
Benutzerdefinierte Funktionen
Pig Latin unterstützt auch benutzerdefinierte Funktionen (UDF), wodurch Sie externe Komponenten aufrufen können, die in Pig Latin schwer zu modellierende Logik implementieren.
Weitere Informationen zu Pig Latin finden Sie unter Pig Latin-Referenzhandbuch 1 und Pig Latin-Referenzhandbuch 2.
Beispieldaten
HDInsight enthält verschiedene Beispieldatasets, die in den Verzeichnissen /example/data
und /HdiSamples
gespeichert sind. Diese Verzeichnisse befinden sich im Standardspeicher für den Cluster. Im Pig-Beispiel in diesem Dokument wird die Datei Log4j aus /example/data/sample.log
verwendet.
Jedes Protokoll innerhalb der Datei besteht aus einer Reihe von Feldern, unter denen sich ein Feld namens [LOG LEVEL]
befindet, das die Art und den Schweregrad des jeweiligen Fehlers anzeigt, beispielsweise:
2012-02-03 20:26:41 SampleClass3 [ERROR] verbose detail for id 1527353937
Die Protokollebene im vorherigen Beispiel ist ERROR.
Hinweis
Sie können auch eine log4j-Datei generieren, indem Sie das Apache Log4j -Protokollierungstool verwenden und die Datei dann in Ihren Blob hochladen. Anweisungen hierzu finden Sie unter Hochladen von Daten in HDInsight . Weitere Informationen zur Verwendung von Blobs in Azure Storage mit HDInsight finden Sie unter Verwenden von Azure Blob Storage mit HDInsight.
Beispielauftrag
Mit dem folgenden Pig Latin-Auftrag wird die Datei sample.log
aus dem Standardspeicher für den HDInsight-Cluster geladen. Er führt dann eine Reihe von Transformationen durch, die als Ergebnis anzeigen, wie oft jede Protokollebene in den Eingabedaten aufgetreten ist. Die Ergebnisse werden an STDOUT geschrieben.
LOGS = LOAD 'wasb:///example/data/sample.log';
LEVELS = foreach LOGS generate REGEX_EXTRACT($0, '(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)', 1) as LOGLEVEL;
FILTEREDLEVELS = FILTER LEVELS by LOGLEVEL is not null;
GROUPEDLEVELS = GROUP FILTEREDLEVELS by LOGLEVEL;
FREQUENCIES = foreach GROUPEDLEVELS generate group as LOGLEVEL, COUNT(FILTEREDLEVELS.LOGLEVEL) as COUNT;
RESULT = order FREQUENCIES by COUNT desc;
DUMP RESULT;
In der folgenden Abbildung ist zusammengefasst, wie sich die einzelnen Transformationen auf die Daten auswirken.
Pig Latin-Auftrag ausführen
HDInsight kann Pig Latin-Aufträge mithilfe verschiedener Methoden ausführen. Die folgende Tabelle hilft Ihnen bei der Entscheidung, welche Methode für Sie geeignet ist. Folgen Sie anschließend dem Link für eine exemplarische Vorgehensweise.
Pig und SQL Server Integration Services
Sie können mit SQL Server Integration Services (SSIS) einen Pig-Auftrag ausführen. Das Azure Feature Pack für SSIS bietet die folgenden Komponenten, die mit Pig-Aufträgen in HDInsight funktionieren.
Hier erfahren Sie mehr zum Azure Feature Pack für SSIS.
Nächste Schritte
Nachdem Sie erfahren haben, wie Sie Pig mit HDInsight verwenden, können Sie mithilfe der nachfolgenden Links andere Möglichkeiten für die Arbeit mit Azure HDInsight untersuchen.