Razlike med PIG in MapReduce

Pig je skriptni jezik, ki se uporablja za raziskovanje velikih nizov podatkov. Pig Latin je razširitev Hadoop, ki poenostavlja programiranje Hadoop z zagotavljanjem jezika za obdelavo podatkov na visoki ravni. Ko Pig piše, lahko funkcionalnost dosežemo tako, da napišemo zelo malo vrstic kode. MapReduce je rešitev za spreminjanje velikosti podatkov. MapReduce ni program, je okvir za pisanje razdeljenih programov za obdelavo podatkov. Programi, napisani v okviru MapReduce, so bili uspešno razširjeni na tisoče strojev.

Uvod v SIG

Pig je pretok podatkov in jezik visoke ravni. Pig deluje s katero koli od različic v Hadoopu.

Sestavni deli prašiča

  • Pig Latin - jezik, ki se uporablja za izražanje pretokov podatkov
  • Pig Engine - motor na vrhu Hadoopa

Prednosti PIG

  • Odstrani potrebo, da uporabniki prilagodijo Hadoop
  • Izolira uporabnike pred spremembami vmesnikov Hadoop.
  • Povečanje produktivnosti.
  1. V enem testu je 10 vrstic latinskega prašiča ≈ 200 vrstic Jave
  2. Pisanje v Javi traja 4 ure, v svinjski latinščini traja približno 15 minut
  3. Odprti sistem za programerje, ki niso Java

Če poznamo HIVE in PIG, nam ni treba skrbeti za kodo, če bo Hadoop različico nadgradil na višjo.

Na primer: če je Hadoop različica 2.6, je zdaj nadgrajena na 2.7. Podpora PIG v vseh različicah ni treba skrbeti, ali koda deluje v višjih različicah ali ne.

Značilnosti PIG

Pig Latin je jezik pretoka podatkov

  • Ponuja podporo za vrste podatkov - long, float, matrika, sheme in funkcije
  • Je razširljiv in podpira uporabniško definirane funkcije
  • Metapodatki niso potrebni, vendar se uporabljajo, ko so na voljo
  • Deluje na datotekah v HDFS
  • Zagotavlja skupne operacije, kot so PRIDRUŽITE se, SKUPINA, FILTER, SORT

PIG scenarij uporabe

  • Obdelava spletnega dnevnika
  • Obdelava podatkov za platforme za spletno iskanje
  • Ad hoc poizvedbe v velikih zbirkah podatkov
  • Hitro izdelavo prototipov algoritmov za obdelavo velikih nizov podatkov

Kdo uporablja prašiča

  • Yahoo, eden najtežjih uporabnikov Hadoop-a, vodi 40% vseh svojih Hadoop opravil pri prašiču.
  • Twitter je še en dobro znan uporabnik Pig

Uvod v MapReduce

  • V preteklosti je bila težava obdelava vedno večjih nizov podatkov. Vsi vaši podatki in računanje so se morali uvrstiti na en sam stroj. Če želite delati na več podatkih, ste morali kupiti večji, dražji stroj.
  • Kakšna je torej rešitev za obdelavo velike količine podatkov, ko teh tehničnih ali finančnih možnosti ni več mogoče storiti na enem samem stroju?
  • MapReduce je rešitev za spreminjanje velikosti podatkov.

MapReduce ima 3 stopnje / faze

Spodnji koraki se izvajajo po zaporedju.

  • Faza preslikav

Vnos iz datotečnega sistema HDFS.

  • Premešajte in razvrstite

Vnos v premikanje in razvrščanje je izhod preslikav

  • Reduktor

Vhod v reduktor oddaja v premikanje in razvrščanje.

MapReduce bo podatke razumel samo v kombinaciji kombinacije ključ in vrednost.

  • Glavni namen faze zemljevida je prebrati vse vhodne podatke in jih preoblikovati ali filtrirati. Preoblikovani ali filtrirani podatki se nadalje analizirajo po poslovni logiki v fazi zmanjšanja, čeprav faza zmanjšanja ni nujno potrebna.
  • Glavni namen faze zmanjšanja je uporaba poslovne logike za odgovor na vprašanje in reševanje problema.

Primerjava med proizvajalci PIG in MapReduce (Infographics)

Spodaj je zgornjih 4 primerjav med PIG in MapReduce

Ključne razlike med PIG in MapReduce

Spodaj so najpomembnejše razlike med PIG in MapReduce

PIG ali MapReduce hitreje

Vsa opravila PIG so prepisana v MapReduce.so, zmanjšanje zemljevida je samo hitrejše.

Stvari, ki ne morejo biti v PIG

Ko je nekaj težko izraziti v Svinjaku, boste končali s predstavo, tj. Sestavili nekaj več primitivov

Nekaj ​​primerov:

  • Kompleksna združenja ali združevanja
  • Združuje veliko nabora podatkov
  • Zapletena uporaba porazdeljenega predpomnilnika (podvojeno združevanje)
  • Kompleksni križni izdelki
  • Naredite nore stvari v ugnezdenih FOREACH

V teh primerih bo Pig upočasnil kup delovnih mest MapReduce, ki bi jih bilo mogoče storiti z manj.

Uporaba scenarijev MapReduce

  • Kadar je za dosego uporabe MapReduce zapleteno.

Razvoj je v PIG veliko hitrejši?

  • Manj vrstic kode, tj. Manjša koda, prihrani čas razvijalca.
  • Manj napak na ravni Java se lahko odpravi, vendar jih je težje odkriti.

Poleg zgornjih razlik podpirajo PIG

  • Razvijalcem omogoča shranjevanje podatkov kamor koli v cevovodu.
  • Razglasi izvedbene načrte.
  • Operaterjem omogoča izvajanje funkcij ETL (Extract, Transform and Load).

Primerjava med proizvajalci PIG in MapReduce

Spodaj so seznami točk, opišite primerjave med PIG in MapReduce

Osnove za primerjavo

PIG

MapReduce

Operacije
  • Jezik pretoka podatkov.
  • Jezik na visoki ravni.
  • Izvajanje pridruževanja pri prašiču je preprosto
  • Jezik za obdelavo podatkov.
  • Jezik na nizki ravni
  • Precej težko izvajati operacije združevanja.
Vrstice kode in večbesednostiPristop z več poizvedbami, s čimer se zmanjša dolžina kod.za izvajanje iste naloge potrebujete skoraj 10-krat več števila vrstic.
SestavljanjeZa sestavljanje ni potrebe. Ob izvedbi se vsak operater Apache Pig interno pretvori v opravilo MapReduce.Posel MapReduce ima dolg postopek kompilacije.
Prenosljivost kodeDeluje s katero koli od različic v HadoopuBrez garancije, ki podpira vsako različico v Hadoopu

Zaključek - PIG proti MapReduce

Primer: prešteti moramo ponovitev besed v stavku.

Kateri je boljši način za izvedbo programa?

PIG ali MapReduce

Pisanje programa v prašiču

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

besede = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (vrstica)) AS beseda;

filtered_words = FILTER besede po besedi MATCHES '\\ w +';

word_groups = SKUPINA filtriranih_word po besedi;

word_count = FOREACH word_groups GENERATE COUNT (filtrirano_words) AS count, skupina AS beseda;

order_word_count = NAROČI word_count PO Število DESC;

STORE naročeno_word_count INTO '/tmp/results.txt';

Pisanje programa v MapReduce.

uvoz org.apache.hadoop.fs.Path;

uvoz org.apache.hadoop.io.IntWritable;

uvoz org.apache.hadoop.io.Text;

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

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

uvoz org.apache.hadoop.mapreduce.Job;

javni razred WordCount (

javni statični void main (String () args) vrže Izjemo (

če (args.length! = 2) (

System.out.printf (

"Uporaba: WordCount \ n");

System.exit (-1);

)

@SuppressWarnings ("odprava")

Job služba = novo Job ();

job.setJarByClass (WordCount.class);

job.setJobName ("Število besed");

FileInputFormat.setInputPaths (opravilo, nova pot (args (0)));

FileOutputFormat.setOutputPath (opravilo, nova pot (args (1)));

job.setMapperClass (WordMapper.class);

služba.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

boolov uspeh = job.waitForCompletion (true);

System.exit (uspeh? 0: 1);

)

)

Če lahko funkcionalnost doseže PIG, kakšna je uporaba funkcije pisanja v MapReduce (daljše kode).

Vedno uporabite pravo orodje za delovno mesto, naj bo delo hitrejše in boljše.

Priporočeni članek

To je bil koristen vodnik za PIG proti MapReduce, tukaj smo razpravljali o njihovem pomenu, primerjavah med seboj, ključnimi razlikami in sklepi. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Prašič proti iskri - 10 uporabnih razlik za učenje
  2. Apache Pig vs Apache Pive - Top 12 uporabnih razlik
  3. Najboljših 15 stvari, ki jih morate vedeti o MapReduce vs Spark
  4. Kako deluje MapReduce?
  5. Razdeljeni predpomnilnik v Hadoopu

Kategorija: