Differenze tra PIG vs MapReduce

Pig è un linguaggio di scripting utilizzato per esplorare set di dati di grandi dimensioni. Pig Latin è un'estensione di Hadoop che semplifica la programmazione di Hadoop fornendo un linguaggio di elaborazione dati di alto livello. Dato che Pig sta scrivendo, possiamo ottenere la funzionalità scrivendo pochissime righe di codice. MapReduce è una soluzione per ridimensionare l'elaborazione dei dati. MapReduce non è un programma, è un framework per scrivere programmi di elaborazione dati distribuiti. I programmi scritti usando il framework MapReduce sono stati ridimensionati con successo su migliaia di macchine.

Introduzione al maiale

Pig è un flusso di dati e un linguaggio di alto livello. Pig funziona con qualsiasi versione di Hadoop.

Componenti del maiale

  • Maiale latino - una lingua utilizzata per esprimere i flussi di dati
  • Pig Engine - un motore in cima a Hadoop

Vantaggi del MAIALE

  • Elimina la necessità per gli utenti di ottimizzare Hadoop
  • Isola gli utenti dalle modifiche alle interfacce di Hadoop.
  • Aumento della produttività.
  1. In una prova 10 linee di maiale latino ≈ 200 linee di Java
  2. Ciò che richiede 4 ore per scrivere in Java richiede circa 15 minuti in latino latino
  3. Sistema aperto a programmatori non Java

Se siamo a conoscenza di HIVE e PIG, non è necessario preoccuparsi del codice, se la versione di Hadoop viene aggiornata a una versione successiva.

Ad esempio: se la versione di Hadoop è 2.6 ora viene aggiornata a 2.7. PIG supporta in qualsiasi versione non preoccuparti se il codice funziona o meno nelle versioni superiori.

Caratteristiche di MAIALE

Il latino di maiale è un linguaggio di flusso di dati

  • Fornisce supporto per tipi di dati: long, float, char array, schemi e funzioni
  • È estensibile e supporta le funzioni definite dall'utente
  • Metadati non richiesti, ma utilizzati quando disponibili
  • Funziona su file in HDFS
  • Fornisce operazioni comuni come JOIN, GROUP, FILTER, SORT

Scenario di utilizzo PIG

  • Elaborazione del weblog
  • Elaborazione dati per piattaforme di ricerca web
  • Query ad hoc su grandi set di dati
  • Prototipazione rapida di algoritmi per l'elaborazione di grandi set di dati

Chi usa il maiale

  • Yahoo, uno degli utenti più pesanti di Hadoop, gestisce il 40% di tutti i suoi lavori Hadoop in un maiale.
  • Twitter è anche un altro noto utente di Pig

Introduzione a MapReduce

  • In passato, l'elaborazione di set di dati sempre più grandi era un problema. Tutti i tuoi dati e il tuo calcolo dovevano adattarsi a una singola macchina. Per lavorare su più dati, è stato necessario acquistare una macchina più grande e più costosa.
  • Quindi, qual è la soluzione per elaborare un grande volume di dati quando non è più tecnicamente o finanziariamente possibile fare su una singola macchina?
  • MapReduce è una soluzione per ridimensionare l'elaborazione dei dati.

MapReduce ha 3 fasi / fasi

I passaggi seguenti vengono eseguiti in sequenza.

  • Fase del mappatore

Input dal file system HDFS.

  • Mischia e ordina

L'input per la riproduzione casuale e l'ordinamento è un output del mapper

  • Reducer

L'ingresso al riduttore viene emesso per la riproduzione casuale e l'ordinamento.

MapReduce comprenderà i dati solo in termini di combinazione chiave-valore.

  • Lo scopo principale della fase della mappa è leggere tutti i dati di input e trasformarli o filtrarli. I dati trasformati o filtrati vengono ulteriormente analizzati dalla logica aziendale nella fase di riduzione, sebbene non sia strettamente necessaria una fase di riduzione.
  • Lo scopo principale della fase di riduzione è utilizzare la logica aziendale per rispondere a una domanda e risolvere un problema.

Confronto testa a testa tra PIG vs MapReduce (infografica)

Di seguito sono riportati i primi 4 confronti tra PIG vs MapReduce

Differenze chiave tra PIG vs MapReduce

Di seguito sono le differenze più importanti tra PIG vs MapReduce

PIG o MapReduce più veloce

Tutti i lavori PIG vengono riscritti in MapReduce.so, Map Reduce è solo più veloce.

Cose che non possono essere in MAIALE

Quando qualcosa è difficile da esprimere in Pig, finirai con una performance, cioè costruendo qualcosa di diversi primitivi

Qualche esempio:

  • Raggruppamenti o join complessi
  • Combinazione di molti set di dati
  • Utilizzo complesso della cache distribuita (join replicato)
  • Prodotti trasversali complessi
  • Facendo cose folli in FORESTA nidificata

In questi casi, Pig rallenterà un sacco di lavori MapReduce, che avrebbero potuto essere fatti con meno.

Utilizzo degli scenari MapReduce

  • Quando ci sono cose difficili da raggiungere, usa MapReduce.

Lo sviluppo è molto più veloce in PIG?

  • Meno righe di codice, ovvero un codice più piccolo, risparmiano il tempo dello sviluppatore.
  • Meno bug a livello java da risolvere ma questi bug sono più difficili da scoprire.

Oltre alle differenze di cui sopra, supporta PIG

  • Consente agli sviluppatori di archiviare dati ovunque nella pipeline.
  • Dichiara i piani di esecuzione.
  • Fornisce agli operatori le funzioni ETL (Estrai, Trasforma e Carica).

Confronto testa a testa tra PIG vs MapReduce

Di seguito sono riportati gli elenchi di punti, descrivi i confronti tra PIG vs MapReduce

Base per il confronto

MAIALE

Riduci mappa

operazioni
  • Lingua del flusso di dati.
  • Linguaggio di alto livello.
  • L'esecuzione delle operazioni di join in un maiale è semplice
  • Lingua di elaborazione dei dati.
  • Linguaggio di basso livello
  • Abbastanza difficile eseguire le operazioni di join.
Linee di codice e verbositàApproccio multi-query, riducendo così la lunghezza dei codici.richiede quasi 10 volte di più il numero di righe per eseguire la stessa attività.
CompilazioneNon c'è bisogno di compilazione. Al momento dell'esecuzione, ogni operatore Apache Pig viene convertito internamente in un processo MapReduce.I lavori MapReduce hanno un lungo processo di compilazione.
Portabilità del codiceFunziona con qualsiasi versione di HadoopNessuna garanzia che supporta con ogni versione di Hadoop

Conclusione - PIG vs MapReduce

Esempio: dobbiamo contare la ricorrenza delle parole presenti nella frase.

Qual è il modo migliore per fare il programma?

PIG o MapReduce

Scrivere il programma in maiale

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

parole = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (line)) AS word;

filtered_words = FILTRO parole PER MATCHES di parole '\\ w +';

word_groups = GROUP filtered_words BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtered_words) AS count, group AS word;

order_word_count = ORDINA word_count BY count DESC;

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

Scrivere il programma 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;

WordCount di classe pubblica (

public static void main (String () args) genera l'eccezione (

if (args.length! = 2) (

System.out.printf (

"Utilizzo: WordCount \ n");

System.exit (-1);

)

@SuppressWarnings ( “disapprovazione”)

Job job = new Job ();

job.setJarByClass (WordCount.class);

job.setJobName ("Conteggio parole");

FileInputFormat.setInputPaths (lavoro, nuovo percorso (args (0)));

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

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

successo booleano = job.waitForCompletion (true);

System.exit (successo? 0: 1);

)

)

Se la funzionalità può essere raggiunta da PIG, qual è l'uso della funzionalità di scrittura in MapReduce (codici di lunghezza).

Utilizzare sempre lo strumento giusto per il lavoro, ottenere il lavoro più veloce e migliore.

Articolo raccomandato

Questa è stata una guida utile a PIG vs MapReduce qui abbiamo discusso del loro significato, confronti testa a testa, differenze chiave e conclusioni. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Pig vs Spark - 10 Differenze utili Per imparare
  2. Apache Pig vs Apache Hive - Le 12 principali differenze utili
  3. Le 15 migliori cose che devi sapere su MapReduce vs Spark
  4. Come funziona MapReduce?
  5. Cache distribuita in Hadoop

Categoria: