Forskelle mellem PIG vs MapReduce

Pig er et scriptingsprog, der bruges til at udforske store datasæt. Pig Latin er en Hadoop-udvidelse, der forenkler Hadoop-programmering ved at give et højt niveau databehandlingssprog. Da Pig er scripting, kan vi opnå funktionaliteten ved at skrive meget få kodelinjer. MapReduce er en løsning til skalering af databehandling. MapReduce er ikke et program, det er en ramme for at skrive distribuerede databehandlingsprogrammer. Programmer, der er skrevet ved hjælp af MapReduce-rammen, har succesfuld skaleret på tværs af tusinder af maskiner.

Introduktion til PIG

Gris er et dataflow og højt niveau sprog. Gris fungerer med en hvilken som helst af versionerne i Hadoop.

Komponenter af gris

  • Gris-latin - et sprog, der bruges til at udtrykke datastrømme
  • Pig Engine - en motor på toppen af ​​Hadoop

Fordele ved PIG

  • Fjerner behovet for brugere at indstille Hadoop
  • Isolerer brugere fra ændringer i Hadoop-grænseflader.
  • Stigende produktivitet.
  1. I en test 10 linjer med grisen latin ≈ 200 linjer Java
  2. Det, der tager 4 timer at skrive i Java, tager cirka 15 minutter i svin Latin
  3. Åbent system for ikke-Java-programmerere

Hvis vi er opmærksomme på HIVE og PIG, er der ingen grund til at passe på kode, hvis Hadoop-versionen er opgraderet til en højere version.

For eksempel: Hvis Hadoop-versionen er 2.6, nu opgraderes den til 2.7. PIG-understøtter i alle versioner behøver ikke at bekymre sig om koden fungerer eller ej i de højere versioner.

Funktioner af PIG

Gris-latin er et datastrømsprog

  • Tilbyder support til datatyper - lang, float, char array, skemaer og funktioner
  • Er udvidelig og understøtter brugerdefinerede funktioner
  • Metadata kræves ikke, men bruges, når de er tilgængelige
  • Fungerer på filer i HDFS
  • Giver fælles operationer som JOIN, GROUP, FILTER, SORT

PIG-brugsscenarie

  • Weblog-behandling
  • Databehandling til websøgningsplatforme
  • Ad hoc-forespørgsler på tværs af store datasæt
  • Hurtig prototype af algoritmer til behandling af store datasæt

Hvem bruger gris

  • Yahoo, en af ​​de tyngste brugere af Hadoop, kører 40% af alle sine Hadoop-job i en svin.
  • Twitter er også en anden kendt bruger af Pig

Introduktion til MapReduce

  • Tidligere var behandling af stadig større datasæt et problem. Alle dine data og beregninger måtte passe på en enkelt maskine. For at arbejde på flere data skulle du købe en større og dyrere maskine.
  • Så hvad er løsningen på at behandle en stor mængde data, når det ikke længere er teknisk eller økonomisk muligt at gøre på en enkelt maskine?
  • MapReduce er en løsning til skalering af databehandling.

MapReduce har 3 faser / faser

Trinene nedenfor udføres i rækkefølge.

  • Kortlægningsfase

Input fra HDFS-filsystemet.

  • Bland og sorter

Input til blanding og sortering er en output fra mapper

  • Reducer

Input til reduktionsenheden udsendes til blanding og sortering.

MapReduce forstår dataene kun i kombination af nøgleværdier.

  • Hovedformålet med kortfasen er at læse alle inputdataene og transformere eller filtrere dem. De transformerede eller filtrerede data analyseres yderligere med forretningslogik i reduceringsfasen, skønt en reduktionsfase ikke er strengt påkrævet.
  • Hovedformålet med reduktionsfasen er at anvende forretningslogik til at besvare et spørgsmål og løse et problem.

Sammenligning mellem hoved og hoved mellem PIG vs MapReduce (Infographics)

Nedenfor er de Top 4 sammenligninger mellem PIG vs MapReduce

Vigtige forskelle mellem PIG vs MapReduce

Nedenfor er de vigtigste forskelle mellem PIG vs MapReduce

PIG eller MapReduce hurtigere

Alle PIG-job skrives om i MapReduce.so, Map Reduce er kun hurtigere.

Ting, der ikke kan være i PIG

Når noget er svært at udtrykke i gris, ender du med en forestilling, dvs. at bygge noget op af flere primitiver

Nogle eksempler:

  • Komplekse grupperinger eller sammenføjninger
  • Kombination af masser af datasæt
  • Kompleks anvendelse af den distribuerede cache (replikeret sammenføjning)
  • Komplekse krydsprodukter
  • Gør skøre ting i indlejret FOREACH

I disse tilfælde vil svin bremse en masse MapReduce-job, hvilket kunne have været gjort med mindre.

Brug af MapReduce-scenarier

  • Når der er vanskelige ting at opnå, skal du bruge MapReduce.

Udviklingen er meget hurtigere i PIG?

  • Færre kodelinjer, dvs. mindre kode sparer udviklerens tid.
  • Færre fejl på java-niveau at arbejde, men disse fejl er sværere at finde ud af.

Ud over ovenstående forskelle understøtter PIG

  • Det giver udviklere mulighed for at gemme data hvor som helst i pipeline.
  • Erklarer udførelsesplaner.
  • Det giver operatører mulighed for at udføre ETL (Extract, Transform and Load) -funktioner.

Sammenligning mellem hovedet og hovedet mellem PIG vs MapReduce

Nedenfor er lister over punkter, der beskriver sammenligningerne mellem PIG vs MapReduce

Grundlag for sammenligning

SVIN

MapReduce

operationer
  • Dataflow sprog.
  • Sprog på højt niveau.
  • Det er enkelt at udføre sammenføjningsoperationer i en gris
  • Databehandlingssprog.
  • Sprog på lavt niveau
  • Ganske vanskeligt at udføre sammenføjningsoperationer.
Linjer med kode og verbositetMulti-forespørgsel tilgang, hvilket reducerer kodernes længde.kræver næsten 10 gange mere antallet af linjer for at udføre den samme opgave.
SamlingIntet behov for sammenstilling. Ved udførelse konverteres hver Apache Pig-operatør internt til et MapReduce-job.MapReduce-job har en lang kompilationsproces.
KodeportabilitetFungerer med nogen af ​​versionerne i HadoopIngen garanti, der understøtter med hver version i Hadoop

Konklusion - PIG vs MapReduce

Eksempel: vi er nødt til at tælle gentagelsen af ​​ord, der findes i sætningen.

Hvad er den bedste måde at gøre programmet på?

PIG eller MapReduce

Skrivning af programmet i svin

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

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

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

word_groups = GROUP filtered_words BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtered_words) AS antal, gruppe AS word;

order_word_count = ORDER word_count BY count DESC;

BUTIK bestilte_word_count INTO '/tmp/results.txt';

Skrivning af 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 (streng () args) kaster undtagelse (

if (args.length! = 2) (

System.out.printf (

“Brug: WordCount \ n”);

System.exit (-1);

)

@SuppressWarnings ( ”udfasning”)

Jobjob = nyt job ();

job.setJarByClass (WordCount.class);

job.setJobName (“Word Count”);

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

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

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

boolsk succes = job.waitForCompletion (sand);

System.exit (succes? 0: 1);

)

)

Hvis funktionaliteten kan opnås med PIG, hvad er brugen af ​​skrivefunktionalitet i MapReduce (lange koder).

Brug altid det rigtige værktøj til jobbet, få jobbet hurtigere og bedre.

Anbefalet artikel

Dette har været en nyttig vejledning til PIG vs MapReduce her, vi har diskuteret deres betydning, sammenligning af hoved til hoved, nøgleforskelle og konklusioner. Du kan også se på de følgende artikler for at lære mere -

  1. Gris vs gnist - 10 nyttige forskelle at lære
  2. Apache Pig vs Apache Hive - Top 12 nyttige forskelle
  3. De 15 bedste ting, du skal vide om MapReduce vs Spark
  4. Hvordan MapReduce fungerer?
  5. Distribueret cache i Hadoop

Kategori: