Diferențele dintre PIG și MapReduce

Pig este un limbaj de script folosit pentru a explora seturi mari de date. Pig Latin este o extensie Hadoop care simplifică programarea Hadoop, oferind un limbaj de procesare a datelor la nivel înalt. Pe măsură ce Pig scrie scripturi, putem realiza funcționalitatea scriind foarte puține linii de cod. MapReduce este o soluție pentru scalarea procesării datelor. MapReduce nu este un program, ci este un cadru pentru a scrie programe distribuite de prelucrare a datelor. Programele scrise folosind cadrul MapReduce s-au extins cu succes pe mii de mașini.

Introducere în PIG

Porcul este un flux de date și un limbaj la nivel înalt. Pig lucrează cu oricare dintre versiunile din Hadoop.

Componentele porcului

  • Latin Pig - o limbă folosită pentru a exprima fluxurile de date
  • Porcină - un motor deasupra Hadoop

Avantajele PIG

  • Înlătură nevoia utilizatorilor de a regla Hadoop
  • Izolează utilizatorii de modificările interfețelor Hadoop.
  • Creșterea productivității.
  1. Într-un test, 10 linii de Latin Latin Pig ≈ 200 de linii Java
  2. Ceea ce durează 4 ore pentru a scrie în Java durează aproximativ 15 minute în Latin Latin
  3. Sistem deschis pentru programatori non-Java

Dacă suntem conștienți de HIVE și PIG, nu este nevoie să ne interesăm de cod, dacă versiunea Hadoop este actualizată la o versiune superioară.

De exemplu: dacă versiunea Hadoop este 2.6, acum este actualizat la 2.7. PIG acceptă în orice versiuni nu trebuie să vă faceți griji dacă codul funcționează sau nu în versiunile superioare.

Caracteristici ale PIG

Latin Latin Pig este un limbaj al fluxului de date

  • Oferă asistență pentru tipuri de date - lung, float, array de caractere, scheme și funcții
  • Este extensibil și acceptă funcțiile definite de utilizator
  • Metadate nu sunt necesare, dar utilizate atunci când sunt disponibile
  • Funcționează pe fișiere în HDFS
  • Oferă operații comune, cum ar fi JOIN, GRUP, FILTRU, SORT

Scenariu de utilizare PIG

  • Prelucrare blog
  • Prelucrarea datelor pentru platformele de căutare web
  • Interogări ad-hoc în seturi de date mari
  • Prototipizarea rapidă a algoritmilor pentru procesarea seturilor de date mari

Cine folosește Porcul

  • Yahoo, unul dintre cei mai grei utilizatori ai Hadoop, ocupă 40% din toate locurile sale de muncă Hadoop la un porc.
  • Twitter este, de asemenea, un alt utilizator cunoscut al Porcilor

Introducere în MapReduce

  • În trecut, procesarea seturilor de date din ce în ce mai mari a fost o problemă. Toate datele și calculul dvs. trebuiau să se încadreze pe o singură mașină. Pentru a lucra la mai multe date, trebuia să cumperi o mașină mai mare, mai scumpă.
  • Deci, care este soluția de procesare a unui volum mare de date atunci când nu mai este posibil din punct de vedere tehnic sau financiar să se facă pe o singură mașină?
  • MapReduce este o soluție pentru scalarea procesării datelor.

MapReduce are 3 etape / etape

Pașii de mai jos sunt executați în succesiune.

  • Faza de mapare

Intrare din sistemul de fișiere HDFS.

  • Amestecă și sortează

Intrarea pentru modificare și sortare este o ieșire a mapatorului

  • Reducer

Intrarea în reductor este produsă pentru a amesteca și sorta.

MapReduce va înțelege datele în termeni de doar o combinație de valori cheie.

  • Scopul principal al fazei hărții este citirea tuturor datelor de intrare și transformarea sau filtrarea acestora. Datele transformate sau filtrate sunt analizate în continuare de logica de afaceri în faza de reducere, deși o fază de reducere nu este strict necesară.
  • Principalul scop al fazei de reducere este de a utiliza logica de afaceri pentru a răspunde la o întrebare și a rezolva o problemă.

Comparație dintre cap și cap între PIG și MapReduce (Infografie)

Mai jos găsiți Top 4 Comparații între PIG și MapReduce

Diferențele cheie între PIG și MapReduce

Mai jos sunt cele mai importante diferențe între PIG și MapReduce

PIG sau MapReduce mai repede

Orice joburi PIG sunt rescrise în MapReduce.so, Map Reduce este doar mai rapid.

Lucruri care nu pot fi în PIG

Când ceva este greu de exprimat în Pig, vei finaliza cu o performanță, adică construind ceva din mai multe elemente primitive

Cateva exemple:

  • Grupări sau uniri complexe
  • Combinând o mulțime de seturi de date
  • Utilizarea complexă a memoriei cache distribuite (replicare alăturată)
  • Produse complexe încrucișate
  • A face lucruri nebunești în cuibărit

În aceste cazuri, Pig va încetini o grămadă de lucrări MapReduce, ceea ce s-ar fi putut face cu mai puțin.

Utilizarea Scenariilor MapReduce

  • Când există lucruri complicate pentru a realiza utilizarea MapReduce.

Dezvoltarea este mult mai rapidă în PIG?

  • Mai puține linii de cod adică mai mici codul economisesc timpul dezvoltatorului.
  • Mai puține erori de nivel java pentru a rezolva, dar aceste erori sunt mai greu de descoperit.

Pe lângă diferențele de mai sus, PIG suportă

  • Permite dezvoltatorilor să stocheze date oriunde în conductă.
  • Declarează planurile de execuție.
  • Oferă operatorilor să efectueze funcții ETL (Extragere, Transformare și Încărcare).

Comparație dintre cap și cap între PIG și MapReduce

Mai jos sunt listele de puncte, descrieți comparațiile dintre PIG și MapReduce

Baza de comparație

PORC

MapReduce

Operațiuni
  • Limbajul fluxului de date.
  • Limbaj la nivel înalt.
  • Efectuarea operațiilor de unire la un porc sunt simple
  • Limbajul de prelucrare a datelor.
  • Limbaj la nivel scăzut
  • Destul de greu de efectuat operațiunile de alăturare.
Linii de cod și verbositateAbordare multi-interogare, reducând astfel lungimea codurilor.necesită de aproape 10 ori mai mult numărul de linii pentru a îndeplini aceeași sarcină.
CompilareNu este nevoie de compilare. La executare, fiecare operator Apache Pig este convertit intern într-o lucrare MapReduce.Joburile MapReduce au un proces lung de compilare.
Portabilitatea coduluiFuncționează cu oricare dintre versiunile din HadoopNici o garanție care să fie compatibilă cu fiecare versiune din Hadoop

Concluzie - PIG vs MapReduce

Exemplu: trebuie să numărăm reapariția cuvintelor prezente în propoziție.

Care este modul mai bun de a face programul?

PIG sau MapReduce

Scrierea programului în porc

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

cuvinte = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (linie)) AS word;

filtered_words = FILTER CUVERSE CU CUVÂNTURI „\\ w +”;

word_groups = GRUPA filtrata_ cuvinte BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtered_words) AS număr, grup AS cuvânt;

commander_word_count = ORDER word_count BY count DESC;

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

Scrierea programului în 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;

public class WordCount (

public static void main (args String ()) aruncă Excepție (

if (lungimea args.! = 2) (

System.out.printf (

„Utilizare: WordCount \ n”);

System.exit (-1);

)

@SuppressWarnings ( „dezaprobare“)

Job job = job nou ();

job.setJarByClass (WordCount.class);

job.setJobName („Număr de cuvinte”);

FileInputFormat.setInputPaths (job, nou Path (args (0)));

FileOutputFormat.setOutputPath (job, Path nou (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

succes boolean = job.waitForCompletion (adevărat);

System.exit (succes? 0: 1);

)

)

Dacă funcționalitatea poate fi realizată de PIG, ce folosește funcționalitatea de scriere în MapReduce (coduri de lungime).

Utilizați întotdeauna instrumentul potrivit pentru Job, obțineți treaba mai repede și mai bine.

Articol recomandat

Acesta a fost un ghid util pentru PIG și MapReduce aici am discutat despre semnificația lor, comparații dintre cap și cap, diferențe cheie și concluzii. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Spark Pig - 10 Diferențe utile de învățat
  2. Apache Pig vs Apache Hive - Top 12 diferențe utile
  3. Cele mai bune 15 lucruri pe care trebuie să le știi despre MapReduce vs Spark
  4. Cum funcționează MapReduce?
  5. Cache distribuit în Hadoop

Categorie: