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.
  1. V jednom teste 10 riadkov ošípaných Latin ≈ 200 riadkov Java
  2. Písanie v jazyku Java trvá 4 hodiny v prípade latiny prasaťa
  3. 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
  • Jazyk údajového toku.
  • Jazyk na vysokej úrovni.
  • Vykonávanie operácií spojenia ošípaných je jednoduché
  • Jazyk spracovania údajov.
  • Jazyk nízkej úrovne
  • Je dosť ťažké vykonať operácie spojenia.
Riadky kódu a výrečnostiPrí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.
zostavenieNie 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óduFunguje 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 -

  1. Prasa vs Spark - 10 užitočných rozdielov, ktoré sa môžete naučiť
  2. Apache Pig vs Apache Hive - Top 12 užitočných rozdielov
  3. 15 najlepších vecí, ktoré potrebujete vedieť o MapReduce vs Spark
  4. Ako funguje MapReduce?
  5. Distribuovaná vyrovnávacia pamäť v Hadoop

Kategórie: