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.
- V jednom testu 10 řádků prasečí latiny ≈ 200 řádků Java
- Psaní v jazyce Java trvá 4 hodiny v latině prasete
- 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 |
|
|
Řádky kódu a výřečnosti | Pří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ódu | Pracuje 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 -
- Prase vs Spark - 10 užitečných rozdílů k učení
- Apache Pig vs Apache Hive - Top 12 užitečných rozdílů
- 15 nejlepších věcí, které potřebujete vědět o MapReduce vs Spark
- Jak MapReduce funguje?
- Distribuovaná mezipaměť v Hadoopu