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.
- Egy tesztben 10 sor Pig Latin ≈ 200 sor Java
- A 4 órás Java nyelvű írás kb. 15 percet vesz igénybe a Pig Latin nyelven
- 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 |
|
|
Kód- és szóbeszédek | Tö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ás | Nincs 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ág | A Hadoop bármelyik verziójával működik | Nincs 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 -
- Pig vs Spark - 10 hasznos különbség a tanuláshoz
- Apache Pig vs Apache Hive - A 12 legfontosabb különbség
- A legjobb 15 dolog, amelyet tudnia kell a MapReduce vs Spark termékről
- Hogyan működik a MapReduce?
- Elosztott gyorsítótár a Hadoopban