Erot PIG: n ja MapReducen välillä

Sika on skriptikieli, jota käytetään suurten tietojoukkojen tutkimiseen. Pig Latin on Hadoop-laajennus, joka yksinkertaistaa Hadoop-ohjelmointia antamalla korkeatasoisen tietojenkäsittelykielen. Koska Pig kirjoittaa, voimme saavuttaa toiminnallisuuden kirjoittamalla hyvin harvat koodirivit. MapReduce on ratkaisu tietojenkäsittelyn skaalaamiseen. MapReduce ei ole ohjelma, se on kehys hajautettujen tietojenkäsittelyohjelmien kirjoittamiseen. MapReduce-kehyksellä kirjoitetut ohjelmat ovat menestyneet tuhansien koneiden välillä.

Johdanto PIG: ään

Sika on datavirta ja korkean tason kieli. Sika toimii minkä tahansa Hadoopin version kanssa.

Sian komponentit

  • Sian latina - kieli, jota käytetään ilmaisemaan tietovirtoja
  • Pig Engine - moottori Hadoopin päällä

PIG: n edut

  • Poistaa käyttäjien tarpeen virittää Hadoop
  • Eristää käyttäjät Hadoop-rajapintojen muutoksilta.
  • Lisääntynyt tuottavuus.
  1. Yhdessä testissä 10 riviä Pig Latin ≈ 200 Java-riviä
  2. Se, mikä Java-kirjoittamiseen vie 4 tuntia, kestää noin 15 minuuttia Pig Latin -sovelluksella
  3. Avoin järjestelmä muille kuin Java-ohjelmoijille

Jos tiedämme HIVE ja PIG, koodista ei tarvitse huolehtia, jos Hadoop-versio päivitetään korkeampaan versioon.

Esimerkiksi: jos Hadoop-versio on nyt 2.6, se päivitetään versioon 2.7. PIG tukee kaikissa versioissa, joten sinun ei tarvitse huolehtia siitä, toimiiko koodi korkeammissa versioissa vai ei.

PIG: n ominaisuudet

Sian latina on tiedonkulun kieli

  • Tukee tietotyyppejä - pitkät, float-, char-ryhmät, skeemit ja toiminnot
  • On laajennettavissa ja tukee käyttäjän määrittämiä toimintoja
  • Metatietoja ei vaadita, mutta käytetään, kun ne ovat saatavilla
  • Toimii tiedostoissa HDFS: ssä
  • Tarjoaa yleisiä toimintoja, kuten LIITÄ, RYHMÄ, Suodatin, SORT

PIG-käytön skenaario

  • Web-lokien käsittely
  • Tietojenkäsittely web-hakualustoille
  • Ad hoc -kyselyt suurten tietojoukkojen välillä
  • Algoritmien nopea prototyyppien laatiminen suurten tietojoukkojen käsittelemiseksi

Kuka käyttää sikaa

  • Yahoo, yksi Hadoopin raskaimmista käyttäjistä, hoitaa 40% kaikista Hadoopin työpaikoistaan ​​sika.
  • Twitter on myös toinen tunnettu sian käyttäjä

Johdanto MapReduceen

  • Aikaisemmin yhä suurempien tietoaineistojen käsittely oli ongelma. Kaikkien tietojen ja laskelmien piti mahtua yhteen koneeseen. Jotta voisit työskennellä enemmän tietoja, jouduit ostamaan isomman, kalliimman koneen.
  • Joten, mikä on ratkaisu suuren tietomäärän käsittelemiseen, kun sitä ei enää ole teknisesti tai taloudellisesti mahdollista tehdä yhdellä koneella?
  • MapReduce on ratkaisu tietojenkäsittelyn skaalaamiseen.

MapReducessa on 3 vaihetta / vaihetta

Alla olevat vaiheet suoritetaan peräkkäin.

  • Karttaajavaihe

Tulo HDFS-tiedostojärjestelmästä.

  • Sekoita ja lajittele

Panos sekoittamiseen ja lajitteluun on mapperin tulos

  • Lyhentäjällä

Tulo reduktoriin annetaan sekoittamiseksi ja lajittelemiseksi.

MapReduce ymmärtää tiedot vain avain-arvo-yhdistelmänä.

  • Karttavaiheen päätarkoitus on lukea kaikki syöttötiedot ja muuntaa tai suodattaa ne. Muunnettua tai suodatettua dataa analysoidaan edelleen liiketoimintalogiikan avulla vähentämisvaiheessa, vaikka pelkistysvaihetta ei ehdottomasti tarvita.
  • Pelkistämisvaiheen päätarkoitus on käyttää liiketoimintalogiikkaa vastata kysymykseen ja ratkaista ongelma.

Head to Head -vertailu PIG: n ja MapReducen välillä (Infografia)

Alla on 4 suosituinta vertailua PIG: n ja MapReducen välillä

Keskeiset erot PIG: n ja MapReducen välillä

Alla on tärkeimmät erot PIG: n ja MapReducen välillä

PIG tai MapReduce Faster

Mahdolliset PIG-työt kirjoitetaan uudelleen MapReduce.so-sovellukseen, Map Reduce on vain nopeampi.

Asioita, joita ei voi olla PIG: ssä

Kun jotain on vaikea ilmaista sika, aiot päätyä performanssiin, ts. Rakentamalla jotain useista alkeellisista

Joitain esimerkkejä:

  • Monimutkaiset ryhmittelyt tai liittymiset
  • Yhdistämällä paljon tietojoukkoja
  • Jaetun välimuistin monimutkainen käyttö (replikoitu liittyminen)
  • Monimutkaiset ristituotteet
  • Hullujen juttujen tekeminen sisäkkäisissä FOREACHissa

Näissä tapauksissa Pig aikoo hidastaa joukko MapReduce-töitä, mikä olisi voitu tehdä vähemmän.

MapReduce-skenaarioiden käyttö

  • Käytä MapReducea, kun saavutettaisiin hankalia juttuja.

PIG: ssä kehitys on paljon nopeampaa?

  • Vähemmän koodiriviä eli pienempi koodi säästää kehittäjän aikaa.
  • Harvempi Java-tason virheiden selvittäminen, mutta näitä virheitä on vaikeampi löytää.

Yllä olevien erojen lisäksi PIG tukee

  • Sen avulla kehittäjät voivat tallentaa tietoja minne tahansa valmisteilla.
  • Julistaa toteutussuunnitelmat.
  • Se antaa operaattoreille mahdollisuuden suorittaa ETL (Extract, Transform ja Load) -toiminnot.

Head to Head -vertailu PIG: n ja MapReducen välillä

Alla on pisteluettelot, kuvaile vertailuja PIG vs. MapReduce

Vertailun perusteet

SIKA

MapReduce

toiminnot
  • Tietovirran kieli.
  • Korkean tason kieli.
  • Sian liittymisoperaatioiden suorittaminen on yksinkertaista
  • Tietojenkäsittelykieli.
  • Matalan tason kieli
  • Melko vaikea suorittaa liittymisoperaatioita.
Koodirivit ja todenmukaisuusMonikyselylähestymistapa, mikä vähentää koodien pituutta.vaatii melkein 10 kertaa enemmän rivejä saman työn suorittamiseen.
kokoelmaEi tarvetta kokoamiseen. Suoritettuaan jokainen Apache Pig -operaattori muunnetaan sisäisesti MapReduce-työksi.MapReduce-töillä on pitkä kokoamisprosessi.
Koodin siirrettävyysToimii kaikkien Hadoopin versioiden kanssaEi takuuta, joka tukee kaikkia Hadoopin versioita

Johtopäätös - PIG vs. MapReduce

Esimerkki: Meidän on laskettava lauseessa olevien sanojen toistuvuus.

Mikä on parempi tapa tehdä ohjelma?

PIG tai MapReduce

Ohjelman kirjoittaminen sikaksi

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

sanat = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (rivi)) AS-sana;

suodatettu_sana = Suodatin sanat sanan vastaavuuksin '\\ w +';

sana_ryhmät = GROUP suodatettuja sanoja sanan mukaan;

sana_määrä = FOREACH sanaryhmiä YLEINEN LASKEMINEN (suodatetut_sanat) AS määrä, ryhmä AS sana;

Order_word_count = Tilaa word_count BY DESC;

TALLENNA tilattu_sana_määrä INTO '/tmp/results.txt';

Ohjelman kirjoittaminen MapReduce-sovellukseen.

tuo org.apache.hadoop.fs.Path;

tuo org.apache.hadoop.io.IntWritable;

tuo org.apache.hadoop.io.Text;

tuo org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

tuo org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

tuo org.apache.hadoop.mapreduce.Job;

julkisen luokan WordCount (

julkinen staattinen void main (String () args) heittää Poikkeuksen (

if (args.length! = 2) (

System.out.printf (

“Käyttö: WordCount \ n”);

System.exit (-1);

)

@SuppressWarnings ( ”poistot”)

Työpaikka = uusi työpaikka ();

job.setJarByClass (WordCount.class);

job.setJobName (”Word Count”);

FileInputFormat.setInputPaths (työ, uusi polku (args (0)));

FileOutputFormat.setOutputPath (työ, uusi polku (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

looginen menestys = job.waitForCompletion (true);

System.exit (menestys? 0: 1);

)

)

Jos toiminnot voidaan saavuttaa PIG: llä, mitä kirjoitustoiminnolla on tarkoitus käyttää MapReduce-ohjelmassa (Pitkät koodit).

Käytä aina oikeaa työkalua työhön, saat työsi nopeammin ja paremmin.

Suositeltava artikkeli

Tämä on ollut hyödyllinen opas kohtaan PIG vs. MapReduce, jossa olemme keskustelleet niiden merkityksestä, Head to Head -vertailuista, avaineroista ja johtopäätöksistä. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Sika vs. kipinä - 10 hyödyllistä eroa oppimiseksi
  2. Apache Pig vs Apache Hive - 12 suosituinta eroa
  3. 15 parasta asiaa, jotka sinun on tiedettävä MapReduce vs Spark -sovelluksesta
  4. Kuinka MapReduce toimii?
  5. Hajautettu välimuisti Hadoopissa

Luokka: