Razlike između PIG-a i MapReduce

Svinja je skriptni jezik koji se koristi za istraživanje velikih skupova podataka. Pig Latin je Hadoop proširenje koje pojednostavljuje Hadoop programiranje pružanjem jezika za obradu podataka na visokoj razini. Kako Svinja skriptira, funkcionalnost možemo postići pisanjem vrlo malo redaka koda. MapReduce je rješenje za skaliranje obrade podataka. MapReduce nije program, on je okvir za pisanje distribuiranih programa za obradu podataka. Programi napisani pomoću okvira MapReduce uspješno su se prilagodili na tisućama strojeva.

Uvod u SIG

Svinja je protok podataka i jezik visoke razine. Svinja radi s bilo kojom od inačica u Hadoopu.

Komponente svinje

  • Svinjski latinski - jezik koji se koristi za izražavanje protoka podataka
  • Pig Engine - motor na vrhu Hadoopa

Prednosti PIG

  • Uklanja korisničku potrebu za podešavanjem Hadoopa
  • Izolira korisnike od promjena u Hadoop sučeljima.
  • Povećanje produktivnosti.
  1. U jednom testu 10 svinjskih latiničnih ≈ 200 linija Jave
  2. Pisanje na Javi treba 4 sata, a svinjskom latinskom treba oko 15 minuta
  3. Otvoreni sustav programerima koji nisu Java

Ako smo svjesni HIVE-a i PIG-a, nema potrebe za brigom o tome da li je Hadoop verzija nadograđena na višu verziju.

Na primjer: ako je Hadoop verzija 2.6, sada je nadograđena na 2.7. PIG podržava bilo koju verziju bez potrebe da se brine hoće li kod u višim verzijama raditi ili ne.

Značajke PIG

Svinjski latinski je jezik protoka podataka

  • Pruža podršku za vrste podataka - long, float, char array, sheme i funkcije
  • Proširiv je i podržava korisnički definirane funkcije
  • Metapodaci nisu potrebni, ali se upotrebljavaju kada su dostupni
  • Radi na datotekama u HDFS
  • Pruža uobičajene operacije kao PRIJAVITE se, GRUPA, FILTER, SORT

PIG scenarij upotrebe

  • Obrada web dnevnika
  • Obrada podataka za platforme za web pretraživanje
  • Ad hoc upiti u velikim skupovima podataka
  • Brzo prototipiranje algoritama za obradu velikih skupova podataka

Tko koristi svinju

  • Yahoo, jedan od najtežih korisnika Hadoopa, obavlja 40% svih svojih poslova Hadoopa u svinji.
  • Twitter je također još jedan poznati korisnik Svinje

Uvod u MapReduce

  • U prošlosti je obrada sve većih skupova podataka bila problem. Svi vaši podaci i proračuni morali su se uklopiti u jedan stroj. Da biste radili na više podataka, morali ste kupiti veći, skuplji stroj.
  • Dakle, kakvo je rješenje za obradu velike količine podataka kada to više nije tehnički ili financijski izvedivo raditi na jednom stroju?
  • MapReduce je rješenje za skaliranje obrade podataka.

MapReduce ima 3 stupnja / faze

Koraci u nastavku izvode se redoslijedom.

  • Faza mapiranja

Ulaz iz datotečnog sustava HDFS.

  • Promiješajte i razvrstajte

Ulaz u nasumičnu reprodukciju i sortiranje je izlaz preslikača

  • Redukcija

Ulaz u reduktor izlazi kako bi se promiješali i razvrstali.

MapReduce će podatke shvatiti samo u kombinaciji kombinacije ključ i vrijednost.

  • Glavna svrha faze karte je očitavanje svih ulaznih podataka te ih transformirati ili filtrirati. Preobraženi ili filtrirani podaci nadalje se analiziraju poslovnom logikom u fazi smanjenja, iako faza smanjenja nije strogo potrebna.
  • Glavna svrha redukcijske faze je upotreba poslovne logike za odgovor na pitanje i rješenje problema.

Usporedba između PIG-a i MapReduce-a (Infographics)

Ispod je top 4 usporedbe podataka PIG-a s MapReduceom

Ključne razlike između PIG-a i MapReducea

Ispod su najvažnije razlike između PIG-a i MapReduce-a

PIG ili MapReduce brže

Bilo koji PIG poslovi prepisani su u MapReduce.so, Smanjivanje karte samo je brže.

Stvari koje ne mogu biti u SIG-u

Kad je nešto teško izraziti u Svinji, završit ćete s predstavom, tj. Izgraditi nešto od nekoliko primitiva

Neki primjeri:

  • Složeno grupiranje ili spajanje
  • Kombiniranje puno skupova podataka
  • Složena upotreba distribuirane predmemorije (replicirano pridruživanje)
  • Složeni križni proizvodi
  • Radite lude stvari u ugniježđenom FOREACH-u

U tim će slučajevima Svinja usporiti gomilu poslova MapReduce, što je moglo učiniti i s manje.

Upotreba scenarija MapReduce

  • Kada postoje sitne stvari za postizanje, koristite MapReduce.

Razvoj je puno brži u PIG-u?

  • Manje redaka koda, tj. Manji kod štedite programeru vrijeme.
  • Manji broj grešaka na razini Java može izaći na kraj, ali te je buge teže otkriti.

Pored gore navedenih razlika, PIG podržava

  • To omogućava programerima da pohranjuju podatke bilo gdje u cjevovodu.
  • Izjavljuje planove izvršenja.
  • Pruža operaterima da obavljaju funkcije ETL (Ekstrakt, Pretvorba i Učitavanje).

Usporedba između PIG-a i MapReduce-a

Ispod su popisi točaka, opišite usporedbe PIG-a i MapReduce-a

Osnove za usporedbu

SVINJA

MapReduce

operacije
  • Jezik protoka podataka.
  • Jezik na visokoj razini.
  • Izvođenje pridruživanja svinja je jednostavno
  • Jezik za obradu podataka.
  • Jezik niske razine
  • Prilično je teško izvesti operacije spajanja.
Linije koda i verbosityPristup s više upita, čime se smanjuje duljina kodova.da biste izvršili isti zadatak potrebno je gotovo 10 puta više broja linija.
KompilacijaNema potrebe za sastavljanjem. Nakon izvršenja, svaki Apache Pig operator interno se pretvara u posao MapReduce.Poslovi MapReduce imaju dug proces sastavljanja.
Prenosivost kodaRadi s bilo kojom od inačica u HadoopuNema garancije koje podržavaju svaku verziju u Hadoopu

Zaključak - PIG protiv MapReduce

Primjer: moramo računati ponavljanje riječi prisutnih u rečenici.

Koji je bolji način izvođenja programa?

PIG ili MapReduce

Pisanje programa u svinji

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

riječi = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (linija)) AS riječ;

filtered_words = FILTER riječi PO MATCHES riječ '\\ w +';

word_groups = GRUPI filtrirane_ riječi PO riječi;

word_count = FOREACH word_groups GENERATE COUNT (filtrirano_words) AS count, grupirajte AS riječ;

order_word_count = ORDER word_count BY count DESC;

STORE naručio_word_count INTO '/tmp/results.txt';

Pisanje programa u MapReduce.

uvoz org.apache.hadoop.fs.Path;

uvoz org.apache.hadoop.io.IntWritable;

uvoz org.apache.hadoop.io.Text;

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

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

uvoz org.apache.hadoop.mapreduce.Job;

WordCount u javnoj klasi (

javno statički void main (String () args) baca Izuzetak (

ako (args.length! = 2) (

System.out.printf (

"Upotreba: WordCount \ n");

System.exit (1);

)

@SuppressWarnings ( „negodovanje”)

Posao posla = novi posao ();

job.setJarByClass (WordCount.class);

posao.setJobName ("Broj riječi");

FileInputFormat.setInputPaths (posao, novi Path (args (0)));

FileOutputFormat.setOutputPath (posao, novi Path (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

logičan uspjeh = posao.waitForCompletion (istina);

System.exit (uspjeh? 0: 1);

)

)

Ako funkciju može postići PIG, čemu koristi pisanje funkcionalnosti u MapReduceu (dugotrajni kodovi).

Uvijek koristite pravi alat za posao, brže i bolje dobijte posao.

Preporučeni članak

Ovo je bio koristan vodič za PIG vs MapReduce. Ovdje smo razgovarali o njihovom značenju, usporedbama, glavnim i glavnim linijama, ključnim razlikama i zaključcima. Možete pogledati i sljedeće članke da biste saznali više -

  1. Svinja vs iskre - 10 korisnih razlika za učenje
  2. Apache Pig vs Apache košnica - 12 najboljih korisnih razlika
  3. Najboljih 15 stvari koje morate znati o MapReduceu vs Spark
  4. Kako MapReduce funkcionira?
  5. Distribuirana predmemorija u Hadoopu

Kategorija: