Erinevused PIG-i ja MapReduce'i vahel

Siga on skriptikeel, mida kasutatakse suurte andmekogumite uurimiseks. Pig Latin on Hadoopi laiend, mis lihtsustab Hadoopi programmeerimist, andes kõrgetasemelise andmetöötluskeele. Kuna Pig skriptib, saame selle funktsionaalsuse saavutada, kirjutades väga vähe koodiridu. MapReduce on lahendus andmetöötluse laiendamiseks. MapReduce ei ole programm, see on raamistik hajutatud andmetöötlusprogrammide kirjutamiseks. MapReduce raamistiku abil kirjutatud programmid on edukalt skaleeritud tuhandete masinate vahel.

Sissejuhatus PIG-i

Siga on andmevoog ja kõrgetasemeline keel. Siga töötab kõigi Hadoopi versioonidega.

Siga komponendid

  • Pig Latin - keel, mida kasutatakse andmevoogude väljendamiseks
  • Pigmootor - mootor Hadoopi peal

PIG eelised

  • Eemaldab vajaduse kasutajatel Hadoopi häälestada
  • Isoleerib kasutajaid Hadoopi liideste muutuste eest.
  • Tootlikkuse kasv.
  1. Ühes testis 10 rida sea ladina ≈ 200 rida Java
  2. See, mis Java keeles kirjutamiseks võtab 4 tundi, võtab sea ladina keeles umbes 15 minutit
  3. Mitte-Java programmeerijatele avatud süsteem

Kui oleme HIVE-ist ja PIG-ist teadlikud, ei ole vaja koodist hoolida, kui Hadoopi versioon uuendatakse kõrgemaks.

Näiteks: kui Hadoopi versioon on 2.6, siis on see nüüd versiooniks 2.7. Mis tahes versioonis PIG toetab, pole vaja muretseda, kas kood töötab kõrgemates versioonides või mitte.

PIGi omadused

Siga ladina on andmevoo keel

  • Toetab andmetüüpe - pikk, hõljumine, sümbolimassiiv, skeemid ja funktsioonid
  • On laiendatav ja toetab kasutaja määratletud funktsioone
  • Metaandmeid ei nõuta, kuid kasutatakse siis, kui need on kättesaadavad
  • Toimib failides HDFS-is
  • Pakub tavalisi toiminguid nagu LIITUMINE, GRUPPIMINE, FILTER, SORT

PIG kasutamise stsenaarium

  • Veebipäevikute töötlemine
  • Andmete töötlemine veebiotsinguplatvormide jaoks
  • Juhuslikud päringud suurtes andmekogumites
  • Suurte andmekogumite töötlemise algoritmide kiire prototüüpimine

Kes kasutab Siga

  • Yahoo, üks Hadoopi raskemaid kasutajaid, juhib 40% kõigist Hadoopi töökohtadest siga.
  • Twitter on ka teine ​​Siga tuntud kasutaja

Sissejuhatus MapReduce'i

  • Varem oli probleemiks üha suuremate andmekogumite töötlemine. Kõik teie andmed ja arvutused pidid mahtuma ühte masinasse. Rohkem andmete töötlemiseks tuli osta suurem, kallim masin.
  • Niisiis, mis on lahendus suure hulga andmete töötlemiseks, kui seda pole enam ühegi masinaga tehniliselt või rahaliselt võimalik teostada?
  • MapReduce on lahendus andmetöötluse laiendamiseks.

MapReduce'il on 3 etappi / faasi

Allpool toodud toimingud viiakse läbi järjestikku.

  • Kaardistaja faas

Sisend HDFS-failisüsteemist.

  • Sega ja sorteeri

Sissejuhatus segamiseks ja sortimiseks on kaardistaja väljund

  • Reduktor

Sisend reduktorisse antakse väljundisse segamiseks ja sortimiseks.

MapReduce mõistab andmeid ainult võtme-väärtuste kombinatsiooni osas.

  • Kaardifaasi peamine eesmärk on lugeda kõiki sisendandmeid ja neid muuta või filtreerida. Muudetud või filtreeritud andmeid analüüsitakse täiendavalt äriloogika abil taandamise faasis, kuigi taandamise faas pole rangelt vajalik.
  • Taandamisfaasi peamine eesmärk on kasutada äriloogikat, et vastata küsimusele ja lahendada probleem.

PIG-i ja MapReduce'i (Infographics) võrdlus

Allpool on neli parimat PIG-i ja MapReduce'i võrdlust

Peamised erinevused PIG-i ja MapReduce'i vahel

Allpool on toodud olulisemad erinevused PIG-i ja MapReduce'i vahel

PIG või MapReduce kiirem

Kõik PIG-tööd kirjutatakse ümber MapReduce.so-s, Map Reduce on ainult kiirem.

Asjad, mis PIG-is olla ei saa

Kui Pigis on midagi raske väljendada, lõpetate etenduse, st ehitate midagi mitmest primitiivist

Mõned näited:

  • Keerulised rühmitused või liitumised
  • Paljude andmekogumite ühendamine
  • Hajutatud vahemälu kompleksne kasutamine (kopeeritud liitumine)
  • Komplekssed risttooted
  • Tehakse hullu asju pesastatud EELMISES

Nendel puhkudel aeglustab Pig hunniku MapReduce tööd, mida oleks võinud vähem teha.

MapReduce stsenaariumide kasutamine

  • Kui leidmiseks on keeruline asju, kasutage MapReduce'i.

Areng on PIG-is palju kiirem?

  • Vähem koodirea, st väiksem kood säästab arendaja aega.
  • Vähem Java-taseme vigu on vaja välja töötada, kuid neid on raskem teada saada.

Lisaks ülaltoodud erinevustele toetab PIG

  • See võimaldab arendajatel andmeid salvestada ükskõik kuhu.
  • Kuulutab täitmisplaanid.
  • See pakub operaatoritele funktsiooni ETL (Extract, Transform and Load) täitmist.

PIG-i ja MapReduce'i võrdlus ühest otsast teise

Allpool on punktide loendid, kirjeldage PIG-i ja MapReduce'i võrdlusi

Võrdluse alus

PIG

MapReduce

Operatsioonid
  • Andmevoo keel.
  • Kõrgetasemeline keel.
  • Sigade ühendamise toimingud on lihtsad
  • Andmetöötluskeel.
  • Madala taseme keel
  • Üsna keeruline on liitumisoperatsioone läbi viia.
Koodi read ja paljususMitme päringuga lähenemine, vähendades sellega koodide pikkust.sama ülesande täitmiseks on vaja peaaegu kümme korda rohkem ridu.
KompileeriminePole vaja koostada. Käivitamisel teisendatakse iga Apache Pig'i operaator sisemiselt MapReduce'i tööks.MapReduce'i töödel on pikk kompileerimise protsess.
Koodi teisaldatavusTöötab kõigi Hadoopi versioonidegaGarantiid ei toetata Hadoopi kõigi versioonidega

Järeldus - PIG vs MapReduce

Näide: peame arvestama lauses esinevate sõnade kordumisega.

Kuidas saate programmi paremini teha?

PIG või MapReduce

Programmi kirjutamine siga

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

sõnad = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (rida)) AS-i sõna;

filters_words = Filtreeri sõnu sõnade vastete järgi '\\ w +';

sõna_grupid = RÜHM filtreeritud märksõnad sõna järgi;

word_count = FOREACH sõnarühmi GENERATE COUNT (filtreerunud_sõnu) AS arv, rühm AS sõna;

tellitud_sõna_arv = TELLIMINE sõna_arvestus DESC järgi;

STORE tellitud_sõna_arv INTO '/tmp/results.txt';

Programmi kirjutamine MapReduce'is.

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;

avaliku klassi WordCount (

avalik staatiline tühine pea (keel () args) viskab erandi (

if (args.length! = 2) (

System.out.printf (

“Kasutamine: WordCount \ n”);

System.exit (-1);

)

@SuppressWarnings (“amortisatsioon”)

Töökoht = uus töökoht ();

job.setJarByClass (WordCount.class);

job.setJobName (“Sõnade arv”);

FileInputFormat.setInputPaths (töö, uus tee (args (0)));

FileOutputFormat.setOutputPath (töö, uus tee (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

tõeväärtuse edu = job.waitForCompletion (true);

System.exit (edu? 0: 1);

)

)

Kui funktsionaalsust saab saavutada PIG-iga, siis mida tähendab kirjutamisfunktsiooni kasutamine MapReduce'is (Pikad koodid).

Kasutage töö jaoks alati õiget tööriista, hankige töö kiiremini ja paremini.

Soovitatav artikkel

See on olnud kasulik juhend PIG vs MapReduce jaoks, siin oleme arutanud nende tähenduse, peadevahelisi võrdlusi, peamisi erinevusi ja järeldusi. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Siga vs säde - 10 kasulikku erinevust õppimiseks
  2. Apache Pig vs Apache Hive - 12 parimat erinevust
  3. 15 parimat asja, mida peate teadma MapReduce vs Spark kohta
  4. Kuidas MapReduce töötab?
  5. Jagatud vahemälu Hadoopis

Kategooria: