Különbségek a PIG és a MapReduce között

A Pig egy szkriptnyelv, amelyet nagy adatkészletek feltárására használnak. A Pig Latin egy Hadoop kiterjesztés, amely magas szintű adatfeldolgozási nyelv megadásával egyszerűsíti a Hadoop programozását. Mivel a Pig szkripteket készít, a funkcionalitást nagyon kevés kódsor megírásával érhetjük el. A MapReduce egy megoldás az adatfeldolgozás méretezésére. A MapReduce nem egy program, hanem egy elosztott adatfeldolgozó programok írására szolgáló keret. A MapReduce keretrendszerrel írt programok sikeresen méreteztek több ezer gépet.

Bevezetés a PIG-be

A Pig egy adatáramlás és magas szintű nyelv. A Pig a Hadoop bármelyik verziójával működik.

A sertés alkotóelemei

  • Pig Latin - az adatfolyamok kifejezésére használt nyelv
  • Pig Engine - egy motor a Hadoop tetején

A PIG előnyei

  • Eltávolítja a felhasználók szükségét a Hadoop hangolására
  • Izolálja a felhasználókat a Hadoop interfészek változásaitól.
  • Növekszik a termelékenység.
  1. Egy tesztben 10 sor Pig Latin ≈ 200 sor Java
  2. A 4 órás Java nyelvű írás kb. 15 percet vesz igénybe a Pig Latin nyelven
  3. Nyílt rendszer a nem Java programozók számára

Ha tisztában vagyunk a HIVE és a PIG-vel, akkor nem kell törődnünk a kóddal, ha a Hadoop verziót magasabbra frissítik.

Például: ha a Hadoop verziója 2.6, akkor a 2.7-re frissíti. A PIG bármely verzióban támogatja, nem kell aggódnia, hogy a kód működik-e vagy sem a magasabb verziókban.

A PIG jellemzői

A sertés Latin egy adatáramlási nyelv

  • Támogatást nyújt az adattípusokhoz - hosszú, úszó, karakterisztikus tömb, sémák és függvények
  • Bővíthető és támogatja a felhasználó által definiált funkciókat
  • A metaadatok nem kötelezőek, de felhasználhatók, ha rendelkezésre állnak
  • A HDFS fájlokban működik
  • Általános műveleteket biztosít, mint például JOIN, GROUP, FILTER, SORT

PIG használati forgatókönyv

  • Webnaplók feldolgozása
  • Adatfeldolgozás webes keresési platformokhoz
  • Ad hoc lekérdezések nagy adatkészletek között
  • A nagy adatkészletek feldolgozására szolgáló algoritmusok gyors prototípusa

Ki használja a Pigot?

  • A Yahoo, a Hadoop egyik legnehezebb felhasználója, Hadoop összes munkájának 40% -át sertésen végzi.
  • A Twitter szintén a Pig egyik ismert felhasználója

Bevezetés a MapReduce-ba

  • A múltban az egyre nagyobb adatkészletek feldolgozása problémát jelentett. Az összes adatnak és a számításnak egyetlen gépen el kellett helyeznie. Több adat feldolgozásához nagyobb és drágább gépet kellett vásárolnia.
  • Tehát, mi a megoldás egy nagy mennyiségű adat feldolgozására, ha műszaki vagy pénzügyi szempontból már nem lehetséges egyetlen gépen megtenni?
  • A MapReduce egy megoldás az adatfeldolgozás méretezésére.

A MapReduce 3 szakaszból áll

Az alábbi lépéseket sorrendben hajtjuk végre.

  • Mapper fázis

Bemenet a HDFS fájlrendszerből.

  • Véletlenszerűen rendezheti és rendezheti

A sorrendbe és a rendezésbe történő bemenet a mapper kimenete

  • Csökkentő

A reduktor bemenetét keverés és rendezés céljából adják ki.

A MapReduce az adatokat csak a kulcs-érték kombináció szempontjából fogja megérteni.

  • A térképfázis fő célja az összes bemeneti adat elolvasása, átalakítása vagy szűrése. Az átalakított vagy szűrt adatokat az üzleti logika tovább elemzi a redukciós szakaszban, bár a redukciós szakasz nem feltétlenül szükséges.
  • A redukciós szakasz fõ célja az üzleti logika alkalmazása a kérdések megválaszolására és a probléma megoldására.

Összehasonlítás a PIG és a MapReduce között (Infographics)

Az alábbiakban a 4 legjobb összehasonlítás található a PIG és a MapReduce között

Főbb különbségek a PIG és a MapReduce között

Az alábbiakban bemutatjuk a PIG és a MapReduce közötti legfontosabb különbségeket

PIG vagy MapReduce gyorsabb

Bármely PIG-feladat átíródik a MapReduce.so-ban, a Map Reduce csak gyorsabb.

Olyan dolgok, amelyek nem lehetnek PIG-ben

Amikor valamit nehéz kifejezni a disznóban, akkor előadással fogsz végezni, azaz több primitívből építesz fel valamit

Néhány példa:

  • Komplex csoportosítás vagy csatlakozás
  • Sok adatkészlet kombinálása
  • Az elosztott gyorsítótár komplex használata (replikált csatlakozás)
  • Komplex kereszt termékek
  • Őrült dolgokat csinál a beágyazott FOREACH-ban

Ezekben az esetekben a Pig lecsökkenti egy csomó MapReduce munkát, amit kevesebbel is meg lehet tenni.

A MapReduce forgatókönyvek használata

  • Ha trükkös dolgok vannak, használja a MapReduce alkalmazást.

A fejlesztés sokkal gyorsabb a PIG-ben?

  • Kevesebb kódsor, azaz kisebb a kód, ezzel megtakaríthatja a fejlesztõ idõjét.
  • Kevesebb java szintű hiba kiküszöbölésére, de ezeket a hibákat nehezebb megtalálni.

A fenti különbségeken kívül a PIG támogatja

  • Ez lehetővé teszi a fejlesztők számára az adatok tárolását a folyamatban.
  • Végrehajtási terveket deklarál.
  • Ez biztosítja az operátorok számára az ETL (Extract, Transform and Load) funkciók végrehajtását.

Összehasonlítás a PIG és a MapReduce között

Az alábbiakban felsoroljuk a pontok listáját, írjuk le a PIG és a MapReduce összehasonlításait

Az összehasonlítás alapja

MALAC

MapReduce

Tevékenységek
  • Adatfolyam nyelve.
  • Magas szintű nyelv.
  • A sertésnél a csatlakozási műveletek végrehajtása egyszerű
  • Adatfeldolgozási nyelv.
  • Alacsony szintű nyelv
  • Elég nehéz végrehajtani a csatlakozási műveleteket.
Kód- és szóbeszédekTöbb lekérdezéses megközelítés, ezáltal csökkentve a kódok hosszát.majdnem tízszeresére több sorra van szükség ugyanazon feladat elvégzéséhez.
ÖsszeállításNincs szükség összeállításra. Végrehajtáskor minden Apache Pig operátor belsőleg konvertálódik MapReduce jobba.A MapReduce jobok hosszú fordítási folyamattal rendelkeznek.
Kód hordozhatóságA Hadoop bármelyik verziójával működikNincs garancia, amely támogatja a Hadoop minden verzióját

Következtetés - PIG vs MapReduce

Példa: számolnunk kell a mondatban szereplő szavak újbóli előfordulását.

Mi a jobb módja a program végrehajtásának?

PIG vagy MapReduce

A program írása disznóban

input_lines = LOAD '/tmp/word.txt' AS (sor: chararray);

szavak = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (sor)) AS szó;

szűrt_szavak = SZŰRŐ szavak szó szerint: "\\ w +";

word_groups = GROUP szűrt_szavak szó szerint;

word_count = FOREACH word_groups GENERATE COUNT (szűrt_szavak) AS szám, csoport AS szó;

order_word_count = RENDELÉS word_count BY DESC;

TÁROLÁS rendezett_szó_számláló INTO '/tmp/results.txt';

A program írása a MapReduce-ban.

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;

nyilvános osztályú WordCount (

nyilvános statikus void main (String () args) dob kivételt (

if (args.length! = 2) (

System.out.printf (

“Használat: WordCount \ n”);

System.exit (-1);

)

@SuppressWarnings ( „értékcsökkenés”)

Állás = új munka ();

job.setJarByClass (WordCount.class);

job.setJobName (“Word Count”);

FileInputFormat.setInputPaths (job, új elérési út (args (0)));

FileOutputFormat.setOutputPath (job, új elérési út (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

logikai siker = job.waitForCompletion (true);

System.exit (siker? 0: 1);

)

)

Ha a funkcionalitást a PIG képes elérni, akkor mi az a hasznos írás funkció a MapReduce-ban (Hosszú kódok).

Mindig használja a munkához megfelelő eszközt, hogy gyorsabban és jobban szerezze meg a munkát.

Ajánlott cikk

Ez egy hasznos útmutató a PIG vs MapReduce számára, itt megvitattuk azok jelentését, fej-fej összehasonlításokat, kulcsfontosságú különbségeket és következtetéseket. A következő cikkeket is megnézheti további információkért -

  1. Pig vs Spark - 10 hasznos különbség a tanuláshoz
  2. Apache Pig vs Apache Hive - A 12 legfontosabb különbség
  3. A legjobb 15 dolog, amelyet tudnia kell a MapReduce vs Spark termékről
  4. Hogyan működik a MapReduce?
  5. Elosztott gyorsítótár a Hadoopban

Kategória: