Hadoop Pig Tutorial: Hva er Apache Pig? Architecture, Eksempel
Vi starter med introduksjonen til Gris
Hva er Apache Pig?
Pig er et programmeringsspråk på høyt nivå som er nyttig for å analysere store datasett. Pig var et resultat av utviklingsinnsats hos Yahoo!
I et MapReduce-rammeverk må programmer oversettes til en serie med Map- og Reduce-stadier. Dette er imidlertid ikke en programmeringsmodell som dataanalytikere er kjent med. Så, for å bygge bro over dette gapet, ble en abstraksjon kalt Pig bygget på toppen av Hadoop.
Apache Pig gjør det mulig for folk å fokusere mer på analysere massedatasett og bruke mindre tid på å skrive Map-Reduce-programmer. Ligner på griser, som spiser hva som helst, Apache-grisen programmeringsspråk er designet for å fungere med alle typer data. Det er derfor navnet, Gris!
I denne nybegynneropplæringen Apache Pig vil du lære-
Pig Architecture
De ArchiTecture of Pig består av to komponenter:
-
Grise latin, som er et språk
-
Et kjøretidsmiljø, for å kjøre PigLatin-programmer.
Et Pig Latin-program består av en serie operasjoner eller transformasjoner som brukes på inngangsdataene for å produsere utdata. Disse operasjonene beskriver en dataflyt som er oversatt til en kjørbar representasjon, av Hadoop Pig-utførelsesmiljøet. Under er resultatene av disse transformasjonene serier med MapReduce-jobber som en programmerer ikke er klar over. Så på en måte lar Pig in Hadoop programmereren fokusere på data i stedet for utførelsens natur.
PigLatin er et relativt stivnet språk som bruker kjente nøkkelord fra databehandling, f.eks. Join, Group og Filter.
Utførelsesmoduser:
Pig in Hadoop har to utførelsesmoduser:
-
Lokal modus: I denne modusen kjører Hadoop Pig-språket i en singel JVM og bruker lokalt filsystem. Denne modusen er kun egnet for analyse av små datasett ved bruk av Pig in Hadoop
-
Kartreduksjonsmodus: I denne modusen blir spørsmål skrevet på griselatin oversatt til MapReduce jobber og kjøres på en Hadoop-klynge (klyngen kan være pseudo- eller fullstendig distribuert). MapReduce-modus med den fullt distribuerte klyngen er nyttig for å kjøre Pig på store datasett.
Hvordan laste ned og installere Pig
Nå i denne Apache Pig-opplæringen lærer vi hvordan du laster ned og installerer Pig:
Før vi starter med selve prosessen, sørg for at du har Hadoop installert. Endre bruker til 'hduser' (id brukt mens Hadoop konfigurasjon, du kan bytte til bruker-ID som ble brukt under Hadoop-konfigurasjonen)
Trinn 1) Last ned den stabile siste utgivelsen av Pig Hadoop fra en av speilsidene som er tilgjengelige på
http://pig.apache.org/releases.html
Plukke ut tar.gz (og ikke src.tar.gz) fil for å laste ned.
Trinn 2) Når en nedlasting er fullført, naviger til katalogen som inneholder den nedlastede tar-filen og flytt taren til stedet der du vil sette opp Pig Hadoop. I dette tilfellet vil vi flytte til /usr/local
Flytt til en katalog som inneholder Pig Hadoop-filer
cd /usr/local
Pakk ut innholdet i tar-filen som nedenfor
sudo tar -xvf pig-0.12.1.tar.gz
Steg 3). endre ~ / .bashrc for å legge til griselaterte miljøvariabler
Åpen ~ / .bashrc fil i hvilken som helst tekstredigerer etter eget valg og gjør endringer nedenfor-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Trinn 4) Nå, kilde denne miljøkonfigurasjonen ved å bruke kommandoen nedenfor
. ~/.bashrc
Trinn 5) Vi må kompilere på nytt PIG å støtte Hadoop 2.2.0
Her er trinnene for å gjøre dette-
Gå til PIG-hjemmekatalogen
cd $PIG_HOME
Installer Ant
sudo apt-get install ant
Merk: Nedlastingen starter og vil ta tid i henhold til internetthastigheten din.
Rekompiler PIG
sudo ant clean jar-all -Dhadoopversion=23
Vær oppmerksom på at i denne rekompileringsprosessen lastes flere komponenter ned. Så et system bør være koblet til internett.
I tilfelle denne prosessen sitter fast et sted og du ikke ser noen bevegelse på ledeteksten i mer enn 20 minutter, trykker du på Ctrl + c og kjør den samme kommandoen på nytt.
I vårt tilfelle tar det 20 minutter
Trinn 6) Test Pig installasjon ved hjelp av kommandoen
pig -help
Eksempel Pig Script
Vi vil bruke Pig Scripts for å finne antall produkter som selges i hvert land.
Inngang: Inndatasettet vårt er en CSV-fil, SalgJan2009.csv
Trinn 1) Start Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Trinn 2) Pig in Big Data tar en fil fra HDFS i MapReduce-modus og lagrer resultatene tilbake til HDFS.
Kopier fil SalgJan2009.csv (lagret på lokalt filsystem, ~/input/SalesJan2009.csv) til HDFS (Hadoop Distributed File System) Hjemmekatalog
Her i dette Apache Pig-eksemplet er filen i mappeinndata. Hvis filen er lagret et annet sted, gi det navnet
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Kontroller om en fil faktisk er kopiert eller ikke.
$HADOOP_HOME/bin/hdfs dfs -ls /
Trinn 3) Grisekonfigurasjon
Først, naviger til $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Åpen gris.eiendommer ved å bruke et tekstredigeringsprogram etter eget valg, og spesifiser loggfilbanen ved å bruke pig.logfile
sudo gedit pig.properties
Loger vil bruke denne filen til å logge feil.
Trinn 4) Kjør kommandoen 'pig' som vil starte Pig-kommandoprompten som er et interaktivt skall Pig-spørringer.
pig
Trinn 5)I Grunt-kommandoprompten for Pig, utfør under Pig-kommandoer i rekkefølge.
— A. Last inn filen som inneholder 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);
Trykk Enter etter denne kommandoen.
— B. Grupper data etter felt Land
GroupByCountry = GROUP salesTable BY Country;
— C. For hver tuppel inn "GruppeByLand", generer den resulterende strengen av skjemaet-> Navn på land: Antall solgte produkter
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Trykk Enter etter denne kommandoen.
— D. Lagre resultatene av Data Flow i katalogen 'pig_output_sales' på HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Denne kommandoen vil ta litt tid å utføre. Når du er ferdig, bør du se følgende skjermbilde
Trinn 6) Resultatet kan sees gjennom kommandogrensesnittet som,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Resultatene kan også sees via et nettgrensesnitt som-
Resultater gjennom et nettgrensesnitt-
Åpen http://localhost:50070/
i en nettleser.
Velg nå "Bla gjennom filsystemet" og naviger opp til /user/hduser/pig_output_sales
Åpen del-r-00000