Skillnader mellan PIG vs MapReduce

Pig är ett skriptspråk som används för att utforska stora datamängder. Pig Latin är en Hadoop-förlängning som förenklar Hadoop-programmering genom att ge ett högnivå databehandlingsspråk. Eftersom Pig är scripting kan vi uppnå funktionaliteten genom att skriva mycket få kodrader. MapReduce är en lösning för skalning av databehandling. MapReduce är inte ett program, det är ett ramverk för att skriva distribuerade databehandlingsprogram. Program skrivna med hjälp av MapReduce-ramverket har framgångsrikt skalat över tusentals maskiner.

Introduktion till PIG

Pig är ett dataflow och högnivåspråk. Pig fungerar med någon av versionerna i Hadoop.

Komponenter av gris

  • Pig Latin - ett språk som används för att uttrycka dataflöden
  • Pig Engine - en motor ovanpå Hadoop

Fördelar med PIG

  • Tar bort användarnas behov av att ställa in Hadoop
  • Isolerar användare från ändringar i Hadoop-gränssnitt.
  • Ökad produktivitet.
  1. I ett test tio rader med svin Latin ≈ 200 rader Java
  2. Det som tar fyra timmar att skriva i Java tar cirka 15 minuter på svin Latin
  3. Öppet system för icke-Java-programmerare

Om vi ​​är medvetna om HIVE och PIG, finns det inget behov av att bry sig om kod, om Hadoop-versionen är uppgraderad till en högre version.

Till exempel: om Hadoop-versionen är 2.6 nu uppgraderas den till 2.7. PIG-stöd i alla versioner behöver inte oroa sig för om koden fungerar eller inte i de högre versionerna.

Funktioner hos PIG

Pig Latin är ett dataflödesspråk

  • Ger stöd för datatyper - long, float, char array, scheman och funktioner
  • Är utdragbar och stöder användardefinierade funktioner
  • Metadata krävs inte, men används när de är tillgängliga
  • Fungerar på filer i HDFS
  • Ger vanliga operationer som JOIN, GROUP, FILTER, SORT

Scig-användningsscenario

  • Weblogbehandling
  • Databehandling för webbsökplattformar
  • Ad hocfrågor i stora datamängder
  • Snabb prototypning av algoritmer för behandling av stora datamängder

Vem använder gris

  • Yahoo, en av de tyngsta användarna av Hadoop, driver 40% av alla sina Hadoop-jobb i en gris.
  • Twitter är också en annan välkänd användare av Pig

Introduktion till MapReduce

  • Tidigare var bearbetning av allt större datasätt ett problem. All din data och beräkning måste passa på en enda maskin. För att arbeta med mer data var du tvungen att köpa en större och dyrare maskin.
  • Så, vad är lösningen på att behandla en stor mängd data när det inte längre är tekniskt eller ekonomiskt möjligt att göra på en enda maskin?
  • MapReduce är en lösning för skalning av databehandling.

MapReduce har 3 steg / faser

Stegen nedan utförs i följd.

  • Kartläggningsfas

Inmatning från HDFS-filsystemet.

  • Blanda och sortera

Input to shuffle and sort är en utgång från mapper

  • Reducer

Ingången till reduceraren matas ut för att blanda och sortera.

MapReduce förstår uppgifterna i termer av endast nyckelvärdeskombination.

  • Huvudsyftet med kartfasen är att läsa all inmatningsdata och transformera eller filtrera den. Den transformerade eller filtrerade informationen analyseras vidare med affärslogik i reduceringsfasen, även om en reduceringsfas inte strikt krävs.
  • Huvudsyftet med den reducerande fasen är att använda affärslogik för att svara på en fråga och lösa ett problem.

Jämförelse mellan huvud och huvud mellan PIG vs MapReduce (Infographics)

Nedan visas de 4 bästa jämförelserna mellan PIG vs MapReduce

Viktiga skillnader mellan PIG vs MapReduce

Nedan visas de viktigaste skillnaderna mellan PIG vs MapReduce

PIG eller MapReduce Snabbare

Alla PIG-jobb skrivs om i MapReduce.so, Map Reduce går bara snabbare.

Saker som inte kan vara i PIG

När något är svårt att uttrycka i gris, kommer du att sluta med en föreställning, dvs. bygga upp något av flera primitiv

Några exempel:

  • Komplexa grupperingar eller sammanfogningar
  • Kombinera massor av datamängder
  • Komplex användning av den distribuerade cachen (replikerad anslutning)
  • Komplexa korsprodukter
  • Gör galna grejer i kapslade FOREACH

I dessa fall kommer Pig att sakta ner ett gäng MapReduce-jobb, vilket kunde ha gjorts med mindre.

Användning av MapReduce-scenarier

  • Använd MapReduce när det finns svåra saker att uppnå.

Utvecklingen är mycket snabbare i PIG?

  • Färre kodlinjer dvs mindre kod sparar utvecklarens tid.
  • Färre buggar på java-nivå för att räkna ut men dessa buggar är svårare att ta reda på.

Förutom ovanstående skillnader stöder PIG

  • Det gör det möjligt för utvecklare att lagra data var som helst i pipeline.
  • Förklarar genomförandeplaner.
  • Det ger operatörer att utföra ETL (Extract, Transform, and Load) -funktioner.

Jämförelse mellan huvud och huvud mellan PIG vs MapReduce

Nedan finns listor över punkter, beskriv jämförelserna mellan PIG vs MapReduce

Grund för jämförelse

GRIS

MapReduce

Operationer
  • Dataflow-språk.
  • Språk på hög nivå.
  • Att utföra kopplingsoperationer i en gris är enkla
  • Databehandlingsspråk.
  • Språk på låg nivå
  • Ganska svårt att utföra anslutningsoperationerna.
Koder och verbositetFlerfrågan och därmed minska längden på koderna.kräver nästan tio gånger mer antal rader för att utföra samma uppgift.
KompileringInget behov av sammanställning. Vid körning konverteras varje Apache Pig-operatör internt till ett MapReduce-jobb.MapReduce-jobb har en lång sammanställningsprocess.
KodportabilitetFungerar med någon av versionerna i HadoopIngen garanti som stöder alla versioner i Hadoop

Slutsats - PIG vs MapReduce

Exempel: vi måste räkna upp förekomsten av ord som finns i meningen.

Vad är det bättre sättet att göra programmet?

PIG eller MapReduce

Skriva programmet i gris

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

ord = FOREACH input_lines GENERATE FLATTEN (TOKENIZE (line)) AS word;

filtered_words = FILTER ord efter ord MATCHES '\\ w +';

word_groups = GROUP filtered_words BY word;

word_count = FOREACH word_groups GENERATE COUNT (filtered_words) AS-räkning, grupp AS-ord;

order_word_count = ORDER word_count BY count DESC;

LAGRA order_word_count INTO '/tmp/results.txt';

Skriva programmet i MapReduce.

importera org.apache.hadoop.fs.Path;

importera org.apache.hadoop.io.IntWritable;

importera org.apache.hadoop.io.Text;

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

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

importera org.apache.hadoop.mapreduce.Job;

WordCount för allmän klass (

public static void main (String () args) kastar undantag (

if (args.length! = 2) (

System.out.printf (

"Användning: WordCount \ n");

System.exit (-1);

)

@SuppressWarnings ( ”deprecation”)

Jobbjobb = nytt jobb ();

job.setJarByClass (WordCount.class);

job.setJobName (“Word Count”);

FileInputFormat.setInputPaths (jobb, ny sökväg (args (0)));

FileOutputFormat.setOutputPath (jobb, ny sökväg (args (1)));

job.setMapperClass (WordMapper.class);

job.setReducerClass (SumReducer.class);

job.setOutputKeyClass (Text.class);

job.setOutputValueClass (IntWritable.class);

booleska framgång = jobb.waitForCompletion (sant);

System.exit (framgång? 0: 1);

)

)

Om funktionaliteten kan uppnås av PIG, vad använder man för att skriva funktioner i MapReduce (Långa koder).

Använd alltid rätt verktyg för jobbet, få jobbet snabbare och bättre.

Rekommenderad artikel

Detta har varit en användbar guide till PIG vs MapReduce här som vi har diskuterat deras betydelse, jämförelser mellan huvud och huvud, viktiga skillnader och slutsatser. Du kan också titta på följande artiklar för att lära dig mer -

  1. Pig vs Spark - 10 användbara skillnader att lära sig
  2. Apache Pig vs Apache Hive - Topp 12 användbara skillnader
  3. De 15 bästa sakerna du behöver veta om MapReduce vs Spark
  4. Hur MapReduce fungerar?
  5. Distribuerad cache i Hadoop

Kategori: