Rozdiely medzi PIG a MapReduce
Prasa je skriptovací jazyk, ktorý sa používa na skúmanie veľkých množín údajov. Pig Latin je rozšírenie Hadoop, ktoré zjednodušuje programovanie Hadoop tým, že poskytuje jazyk na vysokej úrovni spracovania údajov. Pretože Pig skriptuje, môžeme túto funkciu dosiahnuť napísaním veľmi malého počtu riadkov kódu. MapReduce je riešenie pre škálovanie spracovania dát. MapReduce nie je program, je to rámec na písanie distribuovaných programov na spracovanie údajov. Programy napísané pomocou rámca MapReduce sa úspešne rozšírili na tisíce počítačov.
Úvod do PIG
Prasa je jazyk Dataflow a High-Level. Prasa pracuje s ktoroukoľvek z verzií Hadoopu.
Komponenty ošípaných
- Pig Latin - jazyk používaný na vyjadrenie tokov údajov
- Pig Engine - motor na vrchu Hadoopu
Výhody PIG
- Odstráni potrebu, aby užívatelia naladili program Hadoop
- Izoluje používateľov od zmien v rozhraniach Hadoop.
- Zvýšenie produktivity.
- V jednom teste 10 riadkov ošípaných Latin ≈ 200 riadkov Java
- Písanie v jazyku Java trvá 4 hodiny v prípade latiny prasaťa
- Otvorte systém pre programátorov iných ako Java
Ak vieme o HIVE a PIG, nemusíme sa starať o kód, ak je verzia Hadoop inovovaná na vyššiu verziu.
Napríklad: ak je verzia Hadoop 2.6, inovuje sa na 2, 7. Podpora PIG vo všetkých verziách sa nemusí obávať, či kód funguje vo vyšších verziách.
Vlastnosti PIG
Pig Latin je jazyk toku údajov
- Poskytuje podporu pre typy údajov - dlhé, plávajúce, char array, schémy a funkcie
- Je rozšíriteľný a podporuje funkcie definované používateľom
- Metadáta sa nevyžadujú, ale používajú sa, ak sú k dispozícii
- Pracuje so súbormi v HDFS
- Poskytuje bežné operácie ako JOIN, GROUP, FILTER, SORT
Scenár použitia PIG
- Spracovanie weblogu
- Spracovanie dát pre webové vyhľadávacie platformy
- Dotazy ad hoc v rámci veľkých súborov údajov
- Rýchle prototypovanie algoritmov na spracovanie veľkých súborov údajov
Kto používa prasa
- Yahoo, jeden z najťažších používateľov Hadoopu, prevádzkuje 40% všetkých svojich pracovných miest v Hadoope.
- Twitter je tiež ďalším známym používateľom prasaťa
Úvod do služby MapReduce
- V minulosti bolo problémom spracovanie stále väčších súborov údajov. Všetky vaše údaje a výpočty sa museli zmestiť na jeden stroj. Aby ste mohli pracovať na viacerých údajoch, musíte si kúpiť väčší a drahší stroj.
- Aké je teda riešenie na spracovanie veľkého množstva údajov, keď už nie je technicky alebo finančne možné vykonať na jednom počítači?
- MapReduce je riešenie pre škálovanie spracovania dát.
MapReduce má 3 fázy / fázy
Kroky uvedené nižšie sa vykonávajú postupne.
- Fáza mapovania
Vstup zo systému súborov HDFS.
- Zamiešajte a zoraďte
Vstup do náhodného výberu a zoradenia je výstupom mapovača
- redukcia
Vstupom do reduktora je výstup na zamiešanie a triedenie.
MapReduce porozumie údajom iba z hľadiska kombinácie kľúč - hodnota.
- Hlavným účelom fázy mapy je prečítať všetky vstupné údaje a transformovať ich alebo filtrovať. Transformované alebo filtrované údaje sa ďalej analyzujú pomocou obchodnej logiky v redukčnej fáze, hoci redukčná fáza sa striktne nevyžaduje.
- Hlavným účelom redukčnej fázy je využitie obchodnej logiky na zodpovedanie otázky a vyriešenie problému.
Porovnanie medzi hlavami medzi PIG a MapReduce (infografika)
Nižšie sú uvedené Top 4 porovnania medzi PIG a MapReduce
Hlavné rozdiely medzi PIG a MapReduce
Nižšie sú uvedené najdôležitejšie rozdiely medzi PIG a MapReduce
PIG alebo MapReduce Faster
Všetky úlohy PIG sa v službe MapReduce.so prepisujú, funkcia Map Reduce je iba rýchlejšia.
Veci, ktoré nemôžu byť v PIG
Keď sa niečo ošípané ťažko dá ošípať, skončíte predstavením, tj vytvorením niečoho z niekoľkých primitívov
Niekoľko príkladov:
- Komplexné zoskupenia alebo spojenia
- Kombinuje sa veľa súborov údajov
- Komplexné využitie distribuovanej vyrovnávacej pamäte (replikované pripojenie)
- Komplexné krížové produkty
- Robiť bláznivé veci vnorené VŽDY
V týchto prípadoch bude Pig spomaľovať veľa úloh MapReduce, čo by sa dalo urobiť s menšími nákladmi.
Použitie scenárov MapReduce
- Ak je potrebné dosiahnuť MapReduce, je to zložité.
V PIG je vývoj omnoho rýchlejší?
- Menej riadkov kódu, tj menší kód, šetrí čas vývojára.
- Na zistenie menej chýb typu java sa tieto ťažšie zistia.
Okrem vyššie uvedených rozdielov podporuje podpora PIG
- Umožňuje vývojárom ukladať údaje kdekoľvek v potrubí.
- Vyhlasuje plány vykonávania.
- Poskytuje operátorom vykonávanie funkcií ETL (extrakcia, transformácia a načítanie).
Porovnanie medzi hlavami medzi PIG a MapReduce
Nižšie sú uvedené zoznamy bodov, opíšte porovnania medzi PIG a MapReduce
Základ pre porovnanie |
PIG |
MapReduce |
operácie |
|
|
Riadky kódu a výrečnosti | Prístup založený na viacerých dotazoch, čím sa skracuje dĺžka kódov. | vyžadujú takmer 10-krát viac riadkov na vykonanie rovnakej úlohy. |
zostavenie | Nie je potrebné zostavovať. Po vykonaní je každý operátor Apache Pig interne prevedený na úlohu MapReduce. | Úlohy MapReduce majú dlhý proces kompilácie. |
Prenosnosť kódu | Funguje s ľubovoľnou verziou v Hadoop | Žiadna záruka, ktorá podporuje všetky verzie Hadoop |
Záver - PIG vs MapReduce
Príklad: musíme počítať opakovanie slov prítomných vo vete.
Aký je lepší spôsob vykonávania programu?
PIG alebo MapReduce
Písanie programu ošípaných
input_lines = LOAD '/tmp/word.txt' AS (riadok: chararray);
words = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (line)) AS word;
filter_words = FILTER slov podľa slova MATCHES '\\ w +';
word_groups = GROUPfiltrované_words podľa slova;
word_count = FOREACH word_groups GENERATE COUNT (filtr_words) AS count, group AS word;
order_word_count = OBJEDNÁVKA word_count BY count DESC;
STORE objednal_word_count INTO '/tmp/results.txt';
Písanie programu v 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;
verejná trieda WordCount (
verejné statické prázdno main (String () args) vyvolá výnimku (
if (args.length! = 2) (
System.out.printf (
„Použitie: WordCount \ n“);
System.exit (-1);
)
@SuppressWarnings ( "Ukončenie podpory")
Job job = new Job ();
job.setJarByClass (WordCount.class);
job.setJobName („počet slov“);
FileInputFormat.setInputPaths (job, new Path (args (0)));
FileOutputFormat.setOutputPath (job, new Path (args (1)));
job.setMapperClass (WordMapper.class);
job.setReducerClass (SumReducer.class);
job.setOutputKeyClass (Text.class);
job.setOutputValueClass (IntWritable.class);
boolean success = job.waitForCompletion (true);
System.exit (úspech? 0: 1);
)
)
Ak je funkčnosť dosiahnuteľná pomocou PIG, aké je použitie funkcie zápisu v MapReduce (zdĺhavé kódy).
Vždy používajte správny nástroj pre úlohu, získajte úlohu rýchlejšie a lepšie.
Odporúčaný článok
Bol to užitočný sprievodca programom PIG verzus MapReduce, kde sme diskutovali o ich význame, porovnaniach typu Head to Head, kľúčových rozdieloch a záveroch. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Prasa vs Spark - 10 užitočných rozdielov, ktoré sa môžete naučiť
- Apache Pig vs Apache Hive - Top 12 užitočných rozdielov
- 15 najlepších vecí, ktoré potrebujete vedieť o MapReduce vs Spark
- Ako funguje MapReduce?
- Distribuovaná vyrovnávacia pamäť v Hadoop