Forskjeller mellom PIG vs MapReduce

Pig er et skriptspråk som brukes til å utforske store datasett. Pig Latin er en Hadoop-utvidelse som forenkler Hadoop-programmering ved å gi et databehandlingsspråk på høyt nivå. Ettersom Pig er scripting, kan vi oppnå funksjonaliteten ved å skrive veldig få kodelinjer. MapReduce er en løsning for skalering av databehandling. MapReduce er ikke et program, det er et rammeverk for å skrive distribuerte databehandlingsprogrammer. Programmer skrevet med MapReduce-rammeverket har skalert over tusenvis av maskiner.

Introduksjon til PIG

Pig er et Dataflow og høyt nivå språk. Pig fungerer med noen av versjonene i Hadoop.

Komponenter av gris

  • Pig Latin - et språk som brukes til å uttrykke datastrømmer
  • Pig Engine - en motor på toppen av Hadoop

Fordeler med PIG

  • Fjerner behovet for brukere å stille inn Hadoop
  • Isolerer brukere fra endringer i Hadoop-grensesnitt.
  • Øker produktiviteten.
  1. I en test 10 linjer med Gris Latin ≈ 200 linjer Java
  2. Det som tar 4 timer å skrive i Java tar omtrent 15 minutter på griselatin
  3. Åpent system for ikke-Java-programmerere

Hvis vi er klar over HIVE og PIG, er det ingen grunn til å bry seg om kode, hvis Hadoop-versjonen er oppgradert til en høyere versjon.

For eksempel: hvis Hadoop-versjonen er 2.6 nå, blir den oppgradert til 2.7. PIG-støtter i noen versjoner trenger ikke å bekymre deg for om koden fungerer eller ikke i Higher Versions.

Funksjoner av PIG

Pig Latin er et datastrømsspråk

  • Tilbyr støtte for datatyper - lang, flyter, char array, skjemaer og funksjoner
  • Er utvidbar og støtter brukerdefinerte funksjoner
  • Metadata er ikke nødvendig, men brukes når det er tilgjengelig
  • Opererer på filer i HDFS
  • Tilbyr vanlige operasjoner som JOIN, GROUP, FILTER, SORT

Bruk av scenario med svin

  • Webloggbehandling
  • Databehandling for nettsøkplattformer
  • Ad hoc-spørsmål på tvers av store datasett
  • Rask prototyping av algoritmer for behandling av store datasett

Hvem bruker gris

  • Yahoo, en av de tyngste brukerne av Hadoop, kjører 40% av alle Hadoop-jobbene sine i en gris.
  • Twitter er også en annen kjent bruker av Pig

Introduksjon til MapReduce

  • I det siste var behandling av stadig større datasett et problem. Alle dine data og beregninger måtte passe på en enkelt maskin. For å jobbe med mer data, måtte du kjøpe en større og dyrere maskin.
  • Så, hva er løsningen på å behandle et stort datamengde når det ikke lenger er teknisk eller økonomisk mulig å gjøre på en enkelt maskin?
  • MapReduce er en løsning for skalering av databehandling.

MapReduce har 3 etapper / faser

Trinnene nedenfor utføres i rekkefølge.

  • Kartleggingsfase

Inngang fra HDFS-filsystemet.

  • Bland og sorter

Input to shuffle and sort er en utgang fra mapper

  • redusering

Inngang til reduseringsenheten sendes til blanding og sortering.

MapReduce vil forstå dataene i form av bare nøkkelverdi-kombinasjon.

  • Hovedformålet med kartfasen er å lese alle inndatadataene og transformere eller filtrere dem. De transformerte eller filtrerte dataene analyseres videre med forretningslogikk i reduksjonsfasen, selv om en reduksjonsfase ikke er strengt nødvendig.
  • Hovedhensikten med reduksjonsfasen er å bruke forretningslogikk for å svare på et spørsmål og løse et problem.

Sammenligning av topp mot hode mellom PIG vs MapReduce (Infographics)

Nedenfor er de 4 beste sammenligningene mellom PIG vs MapReduce

Viktige forskjeller mellom PIG vs MapReduce

Nedenfor er de viktigste forskjellene mellom PIG vs MapReduce

PIG eller MapReduce Raskere

Eventuelle PIG-jobber blir skrevet om i MapReduce.so, Map Reduce er bare raskere.

Ting som ikke kan være i PIG

Når noe er vanskelig å uttrykke i gris, kommer du til å ende med en forestilling, dvs. bygge opp noe av flere primitiver

Noen eksempler:

  • Komplekse grupperinger eller sammenføyninger
  • Kombinere mange datasett
  • Kompleks bruk av den distribuerte cachen (replikert sammenføyning)
  • Komplekse korsprodukter
  • Å gjøre gale ting i nestede FOREACH

I disse tilfellene vil Pig bremse opp en haug med MapReduce-jobber, noe som kunne vært gjort med mindre.

Bruk av MapReduce Scenarios

  • Bruk MapReduce når det er vanskelige ting å oppnå.

Utviklingen går mye raskere i PIG?

  • Færre kodelinjer dvs. mindre koden sparer utviklerens tid.
  • Færre feil på java-nivå å trene, men disse feilene er vanskeligere å finne ut av.

I tillegg til de ovennevnte forskjellene støtter PIG

  • Det lar utviklere lagre data hvor som helst i rørledningen.
  • Erklarer utførelsesplaner.
  • Det gir operatører å utføre ETL (Extract, Transform and Load) -funksjoner.

Sammenligning av topp mot hode mellom PIG vs MapReduce

Nedenfor er listene med punkter, beskriv sammenligningene mellom PIG vs MapReduce

Grunnlag for sammenligning

GRIS

Kart reduksjon

operasjoner
  • Dataflow-språk.
  • Språk på høyt nivå.
  • Det er enkelt å utføre skjøteoperasjoner i en gris
  • Databehandlingsspråk.
  • Lavt nivå språk
  • Ganske vanskelig å utføre sammenføyningsoperasjoner.
Linjer med kode og verbositetMulti-spørring tilnærming, og dermed redusere lengden på kodene.krever nesten 10 ganger mer antall linjer for å utføre den samme oppgaven.
SamlingIngen behov for sammenstilling. Ved utførelse konverteres hver Apache Pig-operatør internt til en MapReduce-jobb.MapReduce jobber har en lang samlingsprosess.
KodeoverførbarhetFungerer med noen av versjonene i HadoopIngen garanti som støtter alle versjoner i Hadoop

Konklusjon - PIG vs MapReduce

Eksempel: vi må telle gjensynet til ord som er til stede i setningen.

Hva er den bedre måten å gjøre programmet på?

PIG eller MapReduce

Å skrive programmet i gris

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

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

filtered_words = FILTER ord etter ord MATCHES '\\ w +';

word_groups = GROUP filtered_words BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtered_words) AS-telling, gruppe AS-ord;

order_word_count = ORDER word_count BY count DESC;

BUTIKK bestilt_word_count INTO '/tmp/results.txt';

Skrive programmet i 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;

offentlig klasse WordCount (

public static void main (String () args) kaster unntak (

if (args.length! = 2) (

System.out.printf (

“Bruk: WordCount \ n”);

System.exit (1);

)

@SuppressWarnings ( “Avvikling”)

Jobbjobb = ny jobb ();

job.setJarByClass (WordCount.class);

job.setJobName (“Word Count”);

FileInputFormat.setInputPaths (jobb, ny sti (args (0)));

FileOutputFormat.setOutputPath (jobb, ny sti (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

boolsk suksess = jobb.venterForklaring (sant);

System.exit (suksess? 0: 1);

)

)

Hvis funksjonaliteten kan oppnås av PIG, hva bruker du å skrive funksjonalitet i MapReduce (Lengde koder).

Bruk alltid riktig verktøy for jobben, få jobben raskere og bedre.

Anbefalt artikkel

Dette har vært en nyttig guide til PIG vs MapReduce her vi har diskutert betydningen deres, sammenligning av Head to Head, viktige forskjeller og konklusjoner. Du kan også se på følgende artikler for å lære mer -

  1. Pig vs Spark - 10 nyttige forskjeller å lære
  2. Apache Pig vs Apache Hive - Topp 12 nyttige forskjeller
  3. De 15 beste tingene du trenger å vite om MapReduce vs Spark
  4. Hvordan MapReduce fungerer?
  5. Distribuert cache i Hadoop

Kategori: