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.
- V enem testu je 10 vrstic latinskega prašiča ≈ 200 vrstic Jave
- Pisanje v Javi traja 4 ure, v svinjski latinščini traja približno 15 minut
- 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 |
|
|
Vrstice kode in večbesednosti | Pristop z več poizvedbami, s čimer se zmanjša dolžina kod. | za izvajanje iste naloge potrebujete skoraj 10-krat več števila vrstic. |
Sestavljanje | Za sestavljanje ni potrebe. Ob izvedbi se vsak operater Apache Pig interno pretvori v opravilo MapReduce. | Posel MapReduce ima dolg postopek kompilacije. |
Prenosljivost kode | Deluje s katero koli od različic v Hadoopu | Brez 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 -
- Prašič proti iskri - 10 uporabnih razlik za učenje
- Apache Pig vs Apache Pive - Top 12 uporabnih razlik
- Najboljših 15 stvari, ki jih morate vedeti o MapReduce vs Spark
- Kako deluje MapReduce?
- Razdeljeni predpomnilnik v Hadoopu