Verschillen tussen PIG versus MapReduce

Pig is een scripttaal die wordt gebruikt voor het verkennen van grote gegevenssets. Pig Latin is een Hadoop-extensie die Hadoop-programmering vereenvoudigt door een gegevensverwerkingstaal op hoog niveau te bieden. Omdat Pig aan het scripten is, kunnen we de functionaliteit bereiken door heel weinig regels code te schrijven. MapReduce is een oplossing voor het schalen van gegevensverwerking. MapReduce is geen programma, het is een raamwerk om gedistribueerde gegevensverwerkingsprogramma's te schrijven. Programma's geschreven met behulp van het MapReduce-framework zijn met succes geschaald over duizenden machines.

Inleiding tot PIG

Pig is een Dataflow en High-Level Language. Pig werkt met alle versies in Hadoop.

Componenten van Pig

  • Pig Latin - een taal die wordt gebruikt om gegevensstromen uit te drukken
  • Pig Engine - een motor bovenop Hadoop

Voordelen van PIG

  • Verwijdert de noodzaak voor gebruikers om Hadoop te tunen
  • Isoleert gebruikers tegen wijzigingen in Hadoop-interfaces.
  • Verhoging van de productiviteit.
  1. In één test 10 lijnen van Pig Latin lines 200 lijnen van Java
  2. Wat duurt 4 uur om te schrijven in Java duurt ongeveer 15 minuten in Pig Latin
  3. Open systeem voor niet-Java programmeurs

Als we ons bewust zijn van HIVE en PIG, hoeven we ons geen zorgen te maken over code, als de Hadoop-versie is geüpgraded naar een hogere versie.

Bijvoorbeeld: als de Hadoop-versie 2.6 nu is, wordt deze geüpgraded naar 2.7. PIG ondersteunt in alle versies, u hoeft zich geen zorgen te maken of de code werkt of niet in de hogere versies.

Kenmerken van PIG

Pig Latin is een datastroomtaal

  • Biedt ondersteuning voor gegevenstypen - long, float, char array, schema's en functies
  • Is uitbreidbaar en ondersteunt door de gebruiker gedefinieerde functies
  • Metagegevens niet vereist, maar gebruikt indien beschikbaar
  • Werkt op bestanden in HDFS
  • Biedt algemene bewerkingen zoals JOIN, GROUP, FILTER, SORT

PIG Gebruiksscenario

  • Weblog verwerking
  • Gegevensverwerking voor webzoekplatforms
  • Ad-hocquery's voor grote gegevenssets
  • Snelle prototyping van algoritmen voor het verwerken van grote gegevenssets

Wie gebruikt Pig?

  • Yahoo, een van de zwaarste gebruikers van Hadoop, voert 40% van alle Hadoop-banen in een varken uit.
  • Twitter is ook een andere bekende gebruiker van Pig

Inleiding tot MapReduce

  • In het verleden was het verwerken van steeds grotere datasets een probleem. Al uw gegevens en berekeningen moesten op één machine passen. Om aan meer gegevens te werken, moest u een grotere, duurdere machine kopen.
  • Dus, wat is de oplossing voor het verwerken van een grote hoeveelheid gegevens wanneer dit niet langer technisch of financieel haalbaar is om op een enkele machine te doen?
  • MapReduce is een oplossing voor het schalen van gegevensverwerking.

MapReduce heeft 3 fasen / fasen

De onderstaande stappen worden in volgorde uitgevoerd.

  • Mapper-fase

Input van het HDFS-bestandssysteem.

  • Shuffle en sorteer

Invoer voor shuffle en sortering is een uitvoer van mapper

  • reducer

Invoer naar het verloopstuk wordt uitgevoerd om te worden geschud en gesorteerd.

MapReduce begrijpt de gegevens alleen als een combinatie van sleutel en waarde.

  • Het hoofddoel van de kaartfase is om alle invoergegevens te lezen en te transformeren of filteren. De getransformeerde of gefilterde gegevens worden verder geanalyseerd door bedrijfslogica in de reductiefase, hoewel een reductiefase niet strikt vereist is.
  • Het hoofddoel van de reductiefase is om bedrijfslogica te gebruiken om een ​​vraag te beantwoorden en een probleem op te lossen.

Head to Head-vergelijking tussen PIG versus MapReduce (Infographics)

Hieronder vindt u de Top 4-vergelijkingen tussen PIG en MapReduce

Belangrijkste verschillen tussen PIG versus MapReduce

Hieronder staan ​​de belangrijkste verschillen tussen PIG versus MapReduce

PIG of Map Sneller verkleinen

Alle PIG-taken worden herschreven in MapReduce.so, Map Reduce is alleen sneller.

Dingen die niet in PIG kunnen zijn

Wanneer iets moeilijk uit te drukken is in Varken, ga je eindigen met een uitvoering, dat wil zeggen iets opbouwen uit verschillende primitieven

Een paar voorbeelden:

  • Complexe groeperingen of joins
  • Veel gegevenssets combineren
  • Complex gebruik van de gedistribueerde cache (gerepliceerde join)
  • Complexe kruisproducten
  • Gekke dingen doen in geneste VORM

In deze gevallen gaat Pig een aantal MapReduce-taken vertragen, wat met minder had kunnen gebeuren.

Gebruik van MapReduce-scenario's

  • Wanneer er lastige dingen zijn om te bereiken, gebruik MapReduce.

Ontwikkeling is veel sneller in PIG?

  • Minder coderegels, dat wil zeggen kleiner de code, bespaart de tijd van de ontwikkelaar.
  • Minder bugs op Java-niveau om uit te werken, maar deze bugs zijn moeilijker te achterhalen.

Naast de bovengenoemde verschillen ondersteunt PIG

  • Hiermee kunnen ontwikkelaars gegevens overal in de pijplijn opslaan.
  • Verklaart uitvoeringsplannen.
  • Hiermee kunnen operators ETL-functies (Extraheren, Transformeren en Laden) uitvoeren.

Vergelijking tussen PIG versus MapReduce

Hieronder staan ​​de lijst met punten, beschrijf de vergelijkingen tussen PIG versus MapReduce

Basis voor vergelijking

VARKEN

MapReduce

Activiteiten
  • Dataflow-taal.
  • Taal op hoog niveau.
  • Het uitvoeren van join-bewerkingen bij een varken is eenvoudig
  • Gegevensverwerkingstaal.
  • Laag niveau taal
  • Heel moeilijk om de join-bewerkingen uit te voeren.
Lijnen van code en verbosityMulti-query benadering, waardoor de lengte van de codes wordt verkort.vereisen bijna 10 keer meer het aantal lijnen om dezelfde taak uit te voeren.
CompilatieGeen compilatie nodig. Bij uitvoering wordt elke Apache Pig-operator intern omgezet in een MapReduce-taak.MapReduce-taken hebben een lang compilatieproces.
CodeerbaarheidWerkt met alle versies in HadoopGeen garantie die bij elke versie in Hadoop wordt ondersteund

Conclusie - PIG versus MapReduce

Voorbeeld: we moeten de herhaling van woorden in de zin tellen.

Wat is de betere manier om het programma te doen?

PIG of MapReduce

Programma schrijven in varken

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

words = VORIGE input_lines GENERAT FLATTEN (TOKENIZE (regel)) ALS woord;

filter_words = FILTERwoorden OP woord WIJZIGEN '\\ w +';

word_groups = GROEP gefilterde_woorden op woord;

word_count = VOOR ELK woord_groepen GENERATE COUNT (gefilterde_woorden) AS telling, groep AS word;

order_word_count = BESTEL word_count DOOR graaf DESC;

WINKEL WINKEL_woord_telling IN '/tmp/results.txt';

Programma schrijven in MapReduce.

org.apache.hadoop.fs.Path importeren;

org.apache.hadoop.io.IntWritable importeren;

org.apache.hadoop.io.Text importeren;

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

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

org.apache.hadoop.mapreduce.Job importeren;

openbare klasse WordCount (

public static void main (String () args) gooit uitzondering (

if (args.length! = 2) (

System.out.printf (

"Gebruik: WordCount \ n");

System.exit (-1);

)

@SuppressWarnings ( “afschrijvingen”)

Taaktaak = nieuwe taak ();

job.setJarByClass (WordCount.class);

job.setJobName ("Word Count");

FileInputFormat.setInputPaths (job, nieuw pad (args (0)));

FileOutputFormat.setOutputPath (job, new Path (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 (succes? 0: 1);

)

)

Als de functionaliteit kan worden bereikt door PIG, wat is dan het nut van schrijffunctionaliteit in MapReduce (lange codes).

Gebruik altijd de juiste tool voor de taak, krijg de taak sneller en beter.

Aanbevolen artikel

Dit is een nuttige gids voor PIG versus MapReduce geweest. Hier hebben we de betekenis ervan besproken, van kop tot kop vergelijken, belangrijke verschillen en conclusies. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Varken versus vonk - 10 nuttige verschillen om te leren
  2. Apache Pig vs Apache Hive - Top 12 nuttige verschillen
  3. De beste 15 dingen die u moet weten over Map Reduce vs Spark
  4. Hoe werkt MapReduce?
  5. Gedistribueerde cache in Hadoop

Categorie: