PIG vs MapReduce - 4 wichtigsten Unterschiede zu wissen

Inhaltsverzeichnis:

Anonim

Unterschiede zwischen PIG und MapReduce

Pig ist eine Skriptsprache, die zum Durchsuchen großer Datenmengen verwendet wird. Pig Latin ist eine Hadoop-Erweiterung, die die Hadoop-Programmierung vereinfacht, indem sie eine Datenverarbeitungssprache auf hoher Ebene bereitstellt. Da Pig Skripte erstellt, können wir die Funktionalität erreichen, indem wir nur sehr wenige Codezeilen schreiben. MapReduce ist eine Lösung zur Skalierung der Datenverarbeitung. MapReduce ist kein Programm, sondern ein Framework zum Schreiben verteilter Datenverarbeitungsprogramme. Programme, die mit dem MapReduce-Framework erstellt wurden, wurden erfolgreich auf Tausenden von Computern skaliert.

Einführung in PIG

Schwein ist ein Datenfluss und eine Hochsprache. Pig funktioniert mit allen Versionen in Hadoop.

Bestandteile des Schweins

  • Schweinelatein - eine Sprache zum Ausdrücken von Datenflüssen
  • Pig Engine - ein Motor auf Hadoop

Vorteile von PIG

  • Benutzer müssen Hadoop nicht mehr optimieren
  • Isoliert Benutzer vor Änderungen an Hadoop-Schnittstellen.
  • Steigerung der Produktivität.
  1. In einem Test 10 Zeilen Pig Latin ≈ 200 Zeilen Java
  2. Was in Java 4 Stunden dauert, dauert in Pig Latin etwa 15 Minuten
  3. Offenes System für Nicht-Java-Programmierer

Wenn uns HIVE und PIG bekannt sind, müssen wir uns nicht um Code kümmern, wenn die Hadoop-Version auf eine höhere Version aktualisiert wird.

Beispiel: Wenn die Hadoop-Version 2.6 ist, wird sie auf 2.7 aktualisiert. PIG unterstützt in allen Versionen, egal ob der Code in den höheren Versionen funktioniert oder nicht.

Merkmale von PIG

Schweinelatein ist eine Datenflusssprache

  • Bietet Unterstützung für Datentypen - Long, Float, Char-Array, Schemas und Funktionen
  • Ist erweiterbar und unterstützt benutzerdefinierte Funktionen
  • Metadaten sind nicht erforderlich, werden jedoch verwendet, wenn sie verfügbar sind
  • Arbeitet mit Dateien in HDFS
  • Bietet allgemeine Operationen wie JOIN, GROUP, FILTER, SORT

PIG-Nutzungsszenario

  • Weblog-Verarbeitung
  • Datenverarbeitung für Web-Suchplattformen
  • Ad-hoc-Abfragen über große Datenmengen hinweg
  • Rapid Prototyping von Algorithmen zur Verarbeitung großer Datenmengen

Wer benutzt Pig?

  • Yahoo, einer der schwersten Nutzer von Hadoop, führt 40% aller Hadoop-Jobs in einem Schwein aus.
  • Twitter ist auch ein bekannter Nutzer von Pig

Einführung in MapReduce

  • In der Vergangenheit war die Verarbeitung immer größerer Datensätze ein Problem. Alle Ihre Daten und Berechnungen mussten auf eine einzige Maschine passen. Um an mehr Daten zu arbeiten, musste eine größere, teurere Maschine gekauft werden.
  • Was ist also die Lösung für die Verarbeitung eines großen Datenvolumens, wenn dies auf einer einzelnen Maschine technisch oder finanziell nicht mehr machbar ist?
  • MapReduce ist eine Lösung zur Skalierung der Datenverarbeitung.

MapReduce besteht aus 3 Phasen

Die folgenden Schritte werden nacheinander ausgeführt.

  • Mapper-Phase

Eingabe vom HDFS-Dateisystem.

  • Mischen und sortieren

Die Eingabe zum Mischen und Sortieren ist eine Ausgabe von Mapper

  • Reduzierstück

Die Eingabe zum Reduzierer wird ausgegeben, um zu mischen und zu sortieren.

MapReduce versteht die Daten nur als Schlüssel-Wert-Kombination.

  • Der Hauptzweck der Kartenphase besteht darin, alle Eingabedaten zu lesen und sie zu transformieren oder zu filtern. Die transformierten oder gefilterten Daten werden von der Geschäftslogik in der Reduktionsphase weiter analysiert, obwohl eine Reduktionsphase nicht unbedingt erforderlich ist.
  • Der Hauptzweck der Reduktionsphase ist die Verwendung von Geschäftslogik, um eine Frage zu beantworten und ein Problem zu lösen.

Head to Head Vergleich zwischen PIG und MapReduce (Infografik)

Unten finden Sie die Top 4 Vergleiche zwischen PIG und MapReduce

Hauptunterschiede zwischen PIG und MapReduce

Nachfolgend sind die wichtigsten Unterschiede zwischen PIG und MapReduce aufgeführt

PIG oder MapReduce Schneller

Alle PIG-Jobs werden in MapReduce.so umgeschrieben, Map Reduce ist nur schneller.

Dinge, die nicht in PIG sein können

Wenn es schwierig ist, in Pig etwas auszudrücken, erhalten Sie eine Aufführung, dh Sie bauen etwas aus mehreren Primitiven auf

Einige Beispiele:

  • Komplexe Gruppierungen oder Verknüpfungen
  • Viele Datensätze kombinieren
  • Komplexe Verwendung des verteilten Caches (replizierter Join)
  • Komplexe Kreuzprodukte
  • Verrückte Sachen in verschachtelten FOREACH machen

In diesen Fällen wird Pig eine Reihe von MapReduce-Jobs verlangsamen, die mit weniger hätten erledigt werden können.

Verwendung von MapReduce-Szenarien

  • Verwenden Sie MapReduce, wenn knifflige Dinge zu erledigen sind.

Die Entwicklung ist in PIG viel schneller?

  • Weniger Codezeilen, dh weniger Code, sparen dem Entwickler Zeit.
  • Es sind weniger Java-Level-Bugs zu finden, aber diese Bugs sind schwerer zu finden.

Zusätzlich zu den oben genannten Unterschieden unterstützt PIG

  • Entwickler können damit Daten an beliebiger Stelle in der Pipeline speichern.
  • Erklärt Ausführungspläne.
  • Hiermit können Operatoren ETL-Funktionen (Extrahieren, Transformieren und Laden) ausführen.

Head to Head Vergleich zwischen PIG und MapReduce

Unten sind die Listen der Punkte, beschreiben die Vergleiche zwischen PIG und MapReduce

Vergleichsbasis

SCHWEIN

Karte verkleinern

Operationen
  • Datenflusssprache.
  • Hochsprache.
  • Das Durchführen von Verknüpfungsoperationen in einem Molch ist einfach
  • Datenverarbeitungssprache.
  • Low-Level-Sprache
  • Es ist ziemlich schwierig, die Verknüpfungsoperationen durchzuführen.
Codezeilen und AusführlichkeitMulti-Query-Ansatz, wodurch die Länge der Codes reduziert wird.Sie benötigen fast das Zehnfache der Anzahl der Leitungen, um dieselbe Aufgabe auszuführen.
ZusammenstellungKeine Notwendigkeit zum Kompilieren. Bei der Ausführung wird jeder Apache Pig-Operator intern in einen MapReduce-Job konvertiert.MapReduce-Jobs haben einen langen Kompilierungsprozess.
Code-PortabilitätFunktioniert mit allen Versionen in HadoopKeine Garantie, die mit jeder Version in Hadoop unterstützt wird

Fazit - PIG vs MapReduce

Beispiel: Wir müssen die Wiederholung von Wörtern im Satz zählen.

Was ist der bessere Weg, um das Programm zu tun?

PIG oder MapReduce

Schreiben Sie das Programm in Schwein

input_lines = LOAD '/tmp/word.txt' AS (Zeile: chararray);

words = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (Zeile)) AS word;

filtered_words = FILTER words BY word MATCHES '\\ w +';

word_groups = GROUP filters_words BY word;

word_count = FOREACH word_groups GENERATE COUNT (gefilterte_Wörter) AS count, group AS word;

ordered_word_count = ORDER word_count BY count DESC;

STORE ordered_word_count INTO '/tmp/results.txt';

Schreiben des Programms in MapReduce.

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import org.apache.hadoop.mapreduce.Job;

öffentliche Klasse WordCount (

public static void main (String () args) löst eine Ausnahme aus (

if (args.length! = 2) (

System.out.printf (

"Verwendung: WordCount \ n");

System.exit (-1);

)

@SuppressWarnings ("Verfall")

Job job = neuer Job ();

job.setJarByClass (WordCount.class);

job.setJobName ("Word Count");

FileInputFormat.setInputPaths (Job, neuer Pfad (args (0)));

FileOutputFormat.setOutputPath (Job, neuer Pfad (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

Boolescher Erfolg = job.waitForCompletion (true);

System.exit (Erfolg? 0: 1);

)

)

Wenn die Funktionalität von PIG erreicht werden kann, welchen Nutzen hat das Schreiben von Funktionen in MapReduce (Lange Codes)?

Immer das richtige Werkzeug für den Job verwenden, den Job schneller und besser erledigen.

Empfohlener Artikel

Dies war ein nützlicher Leitfaden für PIG vs MapReduce. Hier haben wir ihre Bedeutung, Kopf-an-Kopf-Vergleiche, Hauptunterschiede und Schlussfolgerungen besprochen. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Pig vs Spark - 10 nützliche Unterschiede zu lernen
  2. Apache Pig vs Apache Hive - Top 12 nützliche Unterschiede
  3. Die besten 15 Dinge, die Sie über MapReduce vs Spark wissen müssen
  4. Wie funktioniert MapReduce?
  5. Verteilter Cache in Hadoop