Rozdíly mezi PIG a MapReduce

Prase je skriptovací jazyk používaný pro zkoumání velkých datových sad. Pig Latin je rozšíření Hadoop, které zjednodušuje programování Hadoop tím, že poskytuje jazyk pro zpracování dat na vysoké úrovni. Protože Pig skriptuje, můžeme dosáhnout funkčnosti napsáním velmi malého počtu řádků kódu. MapReduce je řešení pro škálování zpracování dat. MapReduce není program, je to rámec pro psaní programů pro distribuované zpracování dat. Programy napsané pomocí MapReduce framework se úspěšně rozšířily na tisíce strojů.

Úvod do PIG

Prase je datový tok a jazyk na vysoké úrovni. Prase pracuje s jakoukoli verzí v Hadoopu.

Složky prasete

  • Pig Latin - jazyk používaný k vyjádření datových toků
  • Pig Engine - motor na vrcholu Hadoopu

Výhody PIG

  • Odstraňuje potřebu uživatelů naladit Hadoop
  • Izolová uživatele od změn rozhraní Hadoop.
  • Zvýšení produktivity.
  1. V jednom testu 10 řádků prasečí latiny ≈ 200 řádků Java
  2. Psaní v jazyce Java trvá 4 hodiny v latině prasete
  3. Otevřete systém programátorům bez Java

Pokud víme o HIVE a PIG, není třeba se starat o kód, pokud je verze Hadoop upgradována na vyšší verzi.

Například: pokud je verze Hadoop 2.6, je upgradována na 2.7. Podpora PIG ve všech verzích se nemusí obávat, zda kód funguje ve vyšších verzích.

Vlastnosti hotelu PIG

Prase latina je jazyk toku dat

  • Poskytuje podporu pro datové typy - dlouhé, plovoucí, char pole, schémata a funkce
  • Je rozšiřitelný a podporuje funkce definované uživatelem
  • Metadata nejsou vyžadována, ale používají se, pokud jsou k dispozici
  • Pracuje se soubory v HDFS
  • Poskytuje běžné operace jako JOIN, GROUP, FILTER, SORT

Scénář použití PIG

  • Zpracování weblogu
  • Zpracování dat pro webové vyhledávací platformy
  • Ad hoc dotazy napříč rozsáhlými datovými sadami
  • Rychlé prototypování algoritmů pro zpracování velkých datových souborů

Kdo používá prase

  • Yahoo, jeden z nejtěžších uživatelů Hadoopu, provozuje 40% všech svých pracovních míst Hadoopu vepři.
  • Twitter je také dalším známým uživatelem prasete

Úvod do MapReduce

  • V minulosti bylo problémem zpracování stále větších datových sad. Všechna vaše data a výpočet se musely hodit na jeden stroj. Chcete-li pracovat na více datech, musíte si koupit větší, dražší stroj.
  • Jaké je tedy řešení zpracování velkého objemu dat, když již není technicky nebo finančně možné provádět na jednom počítači?
  • MapReduce je řešení pro škálování zpracování dat.

MapReduce má 3 fáze / fáze

Následující kroky se provádějí postupně.

  • Mapovací fáze

Vstup ze systému souborů HDFS.

  • Zamíchat a třídit

Vstup pro míchání a třídění je výstupem mapovače

  • Redukce

Vstupem do reduktoru je výstup pro zamíchání a třídění.

MapReduce bude rozumět datům pouze z hlediska kombinace klíč-hodnota.

  • Hlavním účelem fáze mapy je načíst všechna vstupní data a transformovat je nebo filtrovat. Transformovaná nebo filtrovaná data jsou dále analyzována obchodní logikou v redukční fázi, i když redukční fáze není nutně nutná.
  • Hlavním účelem redukční fáze je využití obchodní logiky k zodpovězení otázky a vyřešení problému.

Srovnání mezi hlavami mezi PIG a MapReduce (infografika)

Níže je seznam nejlepších 4 porovnání mezi PIG a MapReduce

Klíčové rozdíly mezi PIG a MapReduce

Níže jsou uvedeny nejdůležitější rozdíly mezi PIG a MapReduce

PIG nebo MapReduce Faster

Všechny úlohy PIG jsou přepsány v MapReduce.so, Map Reduce je pouze rychlejší.

Věci, které nemohou být v PIG

Když je v Pig něco těžko vyjádřit, skončíte představením, tj. Vytvořením něčeho z několika primitivů

Nějaké příklady:

  • Složitá seskupení nebo spojení
  • Kombinace mnoha datových sad
  • Komplexní využití distribuované mezipaměti (replikované připojení)
  • Složité křížové produkty
  • Dělá bláznivé věci vnořené PŘEDCHOZÍ

V těchto případech bude Pig zpomalovat spoustu MapReduce úloh, které by bylo možné udělat s méně.

Použití scénářů MapReduce

  • Když existují obtížné věci k dosažení využití MapReduce.

Vývoj je v PIG mnohem rychlejší?

  • Méně řádků kódu, tj. Menší kód, šetří čas vývojáře.
  • Méně chyb na úrovni Java lze zjistit, ale tyto chyby je obtížnější zjistit.

Kromě výše uvedených rozdílů podporuje PIG

  • Umožňuje vývojářům ukládat data kdekoli v potrubí.
  • Deklaruje plány provádění.
  • Poskytuje operátorům provádění funkcí ETL (extrakce, transformace a načítání).

Porovnání mezi hlavami mezi PIG a MapReduce

Níže jsou uvedeny seznamy bodů, popište srovnání mezi PIG a MapReduce

Základ pro srovnání

PRASE

MapReduce

Operace
  • Jazyk dataflow.
  • Jazyk na vysoké úrovni.
  • Provádění spojovacích operací u prasete je jednoduché
  • Jazyk zpracování dat.
  • Nízkoúrovňový jazyk
  • Je poměrně obtížné provést operace spojení.
Řádky kódu a výřečnostiPřístup založený na více dotazech, čímž se zkracuje délka kódů.vyžadují téměř 10krát více řádků k provedení stejného úkolu.
SestaveníNení třeba kompilace. Při spuštění je každý operátor Apache Pig interně převeden na úlohu MapReduce.Úlohy MapReduce mají dlouhý proces kompilace.
Přenositelnost kóduPracuje s jakoukoli verzí v HadoopuŽádná záruka, která podporuje každou verzi v Hadoopu

Závěr - PIG vs. MapReduce

Příklad: musíme spočítat opakování slov přítomných ve větě.

Jaký je lepší způsob, jak program udělat?

PIG nebo MapReduce

Psaní programu v prase

input_lines = LOAD '/tmp/word.txt' AS (řádek: chararray);

words = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (line)) AS word;

filtrované_sloviny = FILTEROVÁ slova podle slova MATCHES '\\ w +';

word_groups = GROUPfiltrováno_ slov BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtr_words) AS count, group AS word;

order_word_count = ORDER word_count BY count DESC;

STORE objednal_word_count INTO '/tmp/results.txt';

Zápis programu v MapReduce.

import org.apache.hadoop.fs.Path;

importovat 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;

veřejná třída WordCount (

public static void main (String () args) vyvolá výjimku (

if (args.length! = 2) (

System.out.printf (

„Použití: WordCount \ n“);

System.exit (-1);

)

@SuppressWarnings („zastoupení“)

Job job = new Job ();

job.setJarByClass (WordCount.class);

job.setJobName („Počet slov“);

FileInputFormat.setInputPaths (úloha, nová cesta (args (0)));

FileOutputFormat.setOutputPath (úloha, nová cesta (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 (úspěch? 0: 1);

)

)

Pokud lze tuto funkci dosáhnout pomocí PIG, jaké je použití funkce zápisu v MapReduce (zdlouhavé kódy).

Vždy používejte správný nástroj pro úlohu, získejte úlohu rychleji a lépe.

Doporučený článek

Toto byl užitečný návod k PIG vs. MapReduce, kde jsme diskutovali o jejich významu, porovnání hlava-hlava, hlavní rozdíly a závěry. Další informace naleznete také v následujících článcích -

  1. Prase vs Spark - 10 užitečných rozdílů k učení
  2. Apache Pig vs Apache Hive - Top 12 užitečných rozdílů
  3. 15 nejlepších věcí, které potřebujete vědět o MapReduce vs Spark
  4. Jak MapReduce funguje?
  5. Distribuovaná mezipaměť v Hadoopu

Kategorie: