Ein tiefer Sprung ins Schwein



Dieser Blog-Beitrag ist ein tiefer Einblick in Pig und seine Funktionen. Sie finden eine Demo, wie Sie mit Pig ohne Abhängigkeit von Java an Hadoop arbeiten können.

Einer der Hauptgründe, warum die Popularität von Hadoop in letzter Zeit sprunghaft angestiegen ist, ist die Tatsache, dass Funktionen wie Pig und Hive darauf ausgeführt werden, die Nicht-Programmierern Funktionen bieten, die bisher nur Java-Programmierern vorbehalten waren. Diese Merkmale waren eine Folge der wachsenden Nachfrage nach Hadoop-Fachleuten. Weitere Funktionen, die von Hadoop-Profis mit Nicht-Java-Hintergrund verwendet werden, sind Flume, Sqoop, HBase und Oozie.





Um zu verstehen, warum Sie kein Java benötigen, um Hadoop zu lernen, schauen Sie sich das an dieser Blog .

1Pig Geschichte



Lassen Sie uns verstehen, wie diese Funktionen funktionieren.

Wir alle wissen, dass Programmierkenntnisse eine Notwendigkeit für das Schreiben von MapReduce-Codes sind. Aber was ist, wenn ich ein Tool habe, das die Codierung durchführen kann, wenn ich nur die Details angeben würde? Hier zeigt Pig seine Muskelkraft. Pig verwendet eine Plattform namens Pig Latin, die die Programmierung von der Java MapReduce-Sprache in eine Notation abstrahiert, die die MapReduce-Programmierung auf hohem Niveau macht, ähnlich der von SQL für RDBMS-Systeme. Die in Pig Latin MapReduce geschriebenen Codes werden automatisch in entsprechende MapReduce-Funktionen konvertiert. Ist das nicht großartig? Eine weitere umwerfende Tatsache ist, dass nur 10 Pig-Zeilen benötigt werden, um 200 Java-Zeilen zu ersetzen.



10 Zeilen Pig = 200 Zeilen Java

Dies bedeutet nicht nur, dass Nicht-Java-Profis Hadoop verwenden, sondern auch, dass Pig von einer gleichen Anzahl technischer Entwickler verwendet wird.

Wenn Sie Ihren eigenen MapReduce-Code schreiben möchten, können Sie dies in einer der Sprachen wie Perl, Python, Ruby oder C tun. Einige grundlegende Vorgänge, die wir mit Pig für jeden Datensatz ausführen können, sind Gruppieren, Verknüpfen, Filtern und Sortieren . Diese Operationen können an strukturierten, nicht strukturierten und auch halbstrukturierten Daten ausgeführt werden. Sie bieten eine Ad-hoc-Möglichkeit zum Erstellen und Ausführen von MapReduce-Jobs für sehr große Datenmengen.

Lassen Sie uns als nächstes Hive verstehen. Es handelt sich um ein Open-Source-Data-Warehousing-Framework im Peta-Byte-Maßstab, das auf Hadoop basiert und Daten zusammenfasst, abfragt und analysiert. Hive bietet eine SQL-ähnliche Schnittstelle für Hadoop. Mit Hive können Sie Dateien in Hadoop lesen und schreiben und Ihre Berichte über ein BI-Tool ausführen. Einige typische Funktionen von Hadoop sind:

einfaches Sortierprogramm zum Zusammenführen in c ++

Lassen Sie mich Ihnen eine Demo mit Pig on Clickstream-Datensatz zeigen
Wir werden diese Clickstream-Daten verwenden und Transformationen, Verknüpfungen und Gruppierungen durchführen.

ClickStream ist eine Reihe von Mausklicks, die ein Benutzer beim Zugriff auf das Internet ausführt, insbesondere um die Interessen einer Person für Marketingzwecke zu bewerten. Es wird hauptsächlich von Online-Einzelhandels-Websites wie Flipkart und Amazon verwendet, die Ihre Aktivitäten verfolgen, um Empfehlungen zu generieren. Der von uns verwendete Clickstream-Datensatz enthält die folgenden Felder:

1. Art der von der Webanwendung unterstützten Sprache

2. Browsertyp

3. Verbindungstyp

4. Länder-ID

5. Zeitstempel

6. URL

7. Benutzerstatus

8. Benutzertyp

So sieht es mit den entsprechenden Feldern aus.

Unten finden Sie eine Liste der Browsertypen, die von verschiedenen Personen beim Surfen auf einer bestimmten Website verwendet wurden. Unter der Liste befinden sich Browser wie Internet Explorer, Google Chrome, Lynx und so weiter.

Der Internetverbindungstyp kann Lan / Modem / Wifi sein. Die vollständige Liste finden Sie im Bild unten:

Im nächsten Bild finden Sie die Liste der Länder, aus denen die Website das Publikum angezogen hat, sowie deren IDs.

Sobald wir alle Datensätze gesammelt haben, müssen wir Pig's Grunt-Shell starten, die gestartet wird, um die Pig-Befehle auszuführen.

Das erste, was wir beim Starten der Grunt-Shell tun müssen, ist, die Clickstream-Daten in die Pig-Beziehung zu laden. Eine Beziehung ist nichts als eine Tabelle. Unten finden Sie den Befehl, mit dem wir eine in HDFS befindliche Datei in die Pig-Beziehung laden.

Wir können das Schema der Beziehung mit dem Befehl description click_stream überprüfen.

Wir müssen jetzt die Referenzdateien hinzufügen, die Details zur Liste der Länder mit ihren IDs und den verschiedenen Browsertypen zusammen mit ihren IDs enthalten.

Wir haben jetzt zwei Referenzdateien, aber sie müssen verbunden werden, um eine Beziehung zu bilden.
Wir führen einen Befehl connection_ref aus, um den Verbindungstyp anzugeben.

Nachdem wir eine funktionierende Verbindung und eine etablierte Beziehung haben, zeigen wir Ihnen, wie wir diese Daten transformieren können.
Für jeden Datensatz in Clickstream generieren wir einen neuen Datensatz in einem anderen Format, d. H. Den transformierten Daten. Das neue Format enthält Felder wie TimeStamp, Browsertyp, Länder-IDs und einige mehr.

Wir können eine Filteroperation ausführen, um die Big Data zu reduzieren. Die verschiedenen Benutzertypen sind Administratoren, Gäste oder Bots. In unserer Demo habe ich die Liste für die Gäste gefiltert.

Wenn Sie sich erinnern, ist die Länder-ID im Clickstream vorhanden, und wir haben eine country_ref-Datei geladen, die die Namen der Länder zusammen mit ihren IDs enthält. Auf diese Weise können wir eine Verknüpfungsoperation zwischen den beiden Dateien ausführen und die Daten zusammenführen, um Erkenntnisse abzuleiten.

Wenn wir uns den Daten angeschlossen haben, können wir durch Gruppierung die verschiedenen Länder ermitteln, aus denen sich die Benutzer befinden. Sobald wir diese Daten haben, können wir eine Zähloperation durchführen, um die Anzahl der Benutzer aus einem bestimmten Land zu identifizieren.

Es ist keine Raketenwissenschaft, Erkenntnisse aus Big Data abzuleiten. Dies sind nur einige der vielen Funktionen, die ich implementiert habe. Mit Tools wie Hive, Hbase, Oozie, Sqoop und Flume gibt es einen Datenschatz, der noch erforscht werden muss. Diejenigen von Ihnen, die sich vom Erlernen von Hadoop zurückhalten, müssen sich ändern.

Hast du eine Frage an uns? Bitte erwähnen Sie sie in den Kommentaren und wir werden uns bei Ihnen melden.

Zusammenhängende Posts:

4 Möglichkeiten, R und Hadoop zusammen zu verwenden

Alles über Cloudera Certified Developer für Apache Hadoop