Hadoop Pig Tutorial: Hvad er Apache Pig? Architecture, Eksempel
Vi starter med introduktionen til Gris
Hvad er Apache Pig?
Pig er et programmeringssprog på højt niveau, der er nyttigt til at analysere store datasæt. Pig var et resultat af udviklingsindsats hos Yahoo!
I en MapReduce-ramme skal programmer oversættes til en række Map- og Reduce-stadier. Dette er dog ikke en programmeringsmodel, som dataanalytikere er bekendt med. Så for at bygge bro over dette hul blev der bygget en abstraktion kaldet Pig oven på Hadoop.
Apache Pig gør det muligt for folk at fokusere mere på analysere massedatasæt og bruge mindre tid på at skrive Map-Reduce-programmer. Svarende til grise, der spiser hvad som helst, Apache-grisen programmeringssprog er designet til at arbejde på enhver form for data. Det er derfor navnet, Gris!

I denne Apache Pig-tutorial for begyndere lærer du-
- Hvad er PIG?
- Gris Architecture
- Forudsætninger
- Sådan downloades og installeres Pig
- Eksempel Pig Script
Gris Architecture
ArchiTecture of Pig består af to komponenter:
-
Grise latin, som er et sprog
-
Et runtime miljø, til at køre PigLatin-programmer.
Et Pig Latin-program består af en række operationer eller transformationer, som anvendes på inputdataene for at producere output. Disse operationer beskriver et dataflow, som er oversat til en eksekverbar repræsentation af Hadoop Pigs eksekveringsmiljø. Nedenunder er resultaterne af disse transformationer en række MapReduce-job, som en programmør ikke er klar over. Så på en måde giver Pig in Hadoop programmøren mulighed for at fokusere på data frem for arten af eksekvering.
PigLatin er et relativt stivnet sprog, som bruger kendte nøgleord fra databehandling, f.eks. Join, Group og Filter.

Udførelsestilstande:
Pig in Hadoop har to udførelsestilstande:
-
Lokal tilstand: I denne tilstand kører Hadoop Pig-sproget i en enkelt FMV og gør brug af lokalt filsystem. Denne tilstand er kun egnet til analyse af små datasæt ved hjælp af Pig in Hadoop
-
Kort Reducer tilstand: I denne tilstand oversættes forespørgsler skrevet på Pig Latin til KortReducer job og køres på en Hadoop-klynge (klynge kan være pseudo- eller fuldt distribueret). MapReduce-tilstand med den fuldt distribuerede klynge er nyttig til at køre Pig på store datasæt.
Sådan downloades og installeres Pig
Nu i denne Apache Pig-tutorial lærer vi, hvordan du downloader og installerer Pig:
Før vi starter med selve processen, skal du sikre dig, at du har Hadoop installeret. Skift bruger til 'hduser' (id brugt under Hadoop-konfiguration, du kan skifte til det bruger-id, der blev brugt under din Hadoop-konfiguration)
Trin 1) Download den stabile seneste udgivelse af Pig Hadoop fra et hvilket som helst af spejlsiderne, der er tilgængelige på
http://pig.apache.org/releases.html
Type tar.gz (og ikke src.tar.gz) fil at downloade.
Trin 2) Når en download er fuldført, skal du navigere til den mappe, der indeholder den downloadede tar-fil og flytte taren til det sted, hvor du vil konfigurere Pig Hadoop. I dette tilfælde vil vi flytte til /usr/local
Flyt til en mappe, der indeholder Pig Hadoop-filer
cd /usr/local
Udpak indholdet af tar-filen som nedenfor
sudo tar -xvf pig-0.12.1.tar.gz
Trin 3). Ændre ~ / .bashrc for at tilføje griserelaterede miljøvariabler
Åbne ~ / .bashrc fil i en hvilken som helst teksteditor efter eget valg og foretag nedenstående ændringer-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Trin 4) Køb nu denne miljøkonfiguration ved hjælp af kommandoen nedenfor
. ~/.bashrc
Trin 5) Vi skal omkompilere SVIN at støtte Hadoop 2.2.0
Her er trinene til at gøre dette-
Gå til PIG-hjemmemappe
cd $PIG_HOME
Installer Ant
sudo apt-get install ant
Bemærk: Download starter og vil tage tid i henhold til din internethastighed.
Genkompiler PIG
sudo ant clean jar-all -Dhadoopversion=23
Bemærk venligst, at i denne rekompileringsproces downloades flere komponenter. Så et system skal være forbundet til internettet.
Også, hvis denne proces sidder fast et sted, og du ikke ser nogen bevægelse på kommandoprompten i mere end 20 minutter, skal du trykke på Ctrl + c og kør den samme kommando igen.
I vores tilfælde tager det 20 minutter
Trin 6) Test Gris installation ved hjælp af kommandoen
pig -help
Eksempel Pig Script
Vi vil bruge Pig Scripts til at finde antallet af solgte produkter i hvert land.
Input: Vores inputdatasæt er en CSV-fil, SalgJan2009.csv
Trin 1) Start Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Trin 2) Pig in Big Data tager en fil fra HDFS i MapReduce-tilstand og gemmer resultaterne tilbage til HDFS.
Kopier filer SalgJan2009.csv (gemt på lokalt filsystem, ~/input/SalesJan2009.csv) til HDFS (Hadoop Distributed File System) Home Directory
Her i dette Apache Pig-eksempel er filen i mappeinput. Hvis filen er gemt et andet sted, giv det navn
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Kontroller, om en fil faktisk er kopieret eller ej.
$HADOOP_HOME/bin/hdfs dfs -ls /
Trin 3) Grisekonfiguration
Først skal du navigere til $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Åbne svine.ejendomme ved hjælp af en teksteditor efter eget valg, og angiv logfilstien ved hjælp af pig.logfile
sudo gedit pig.properties
Loger vil bruge denne fil til at logge fejl.
Trin 4) Kør kommandoen 'pig', som starter Pig-kommandoprompten, som er en interaktiv shell Pig-forespørgsler.
pig
Trin 5)I Grunt-kommandoprompten for Pig, udfør nedenstående Pig-kommandoer i rækkefølge.
— A. Indlæs filen, der indeholder data.
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
Tryk på Enter efter denne kommando.
— B. Grupper data efter felt Land
GroupByCountry = GROUP salesTable BY Country;
— C. For hver tupel ind 'GroupByCountry', generer den resulterende streng af formularen-> Navn på land: Antal solgte produkter
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Tryk på Enter efter denne kommando.
— D. Gem resultaterne af Data Flow i biblioteket 'svin_output_salg' på HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Denne kommando vil tage noget tid at udføre. Når du er færdig, bør du se følgende skærm
Trin 6) Resultatet kan ses gennem kommandogrænsefladen som,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Resultater kan også ses via en webgrænseflade som-
Resultater gennem en webgrænseflade-
Åbne http://localhost:50070/
i en webbrowser.
Vælg nu 'Gennemse filsystemet' og naviger op til /user/hduser/pig_output_sales
Åbne del-r-00000