Hadoop Pig -opastus: Mikä on Apache Pig? Architecture, esimerkki
Aloitamme Pig-esittelyllä
Mikä on Apache Pig?
Pig on korkean tason ohjelmointikieli, joka on hyödyllinen suurten tietojoukkojen analysointiin. Pig oli Yahoo!
MapReduce-kehyksessä ohjelmat on muutettava sarjaksi Map- ja Reduce-vaiheita. Tämä ei kuitenkaan ole ohjelmointimalli, jonka dataanalyytikot tuntevat. Joten tämän kuilun kuromiseksi umpeen, Hadoopin päälle rakennettiin abstraktio nimeltä Pig.
Apache Pig antaa ihmisille mahdollisuuden keskittyä enemmän massatietojoukkojen analysointia ja vähemmän aikaa Map-Reduce-ohjelmien kirjoittamiseen. Samanlainen kuin Siat, jotka syövät mitä tahansa, Apache Pig ohjelmointikieli on suunniteltu toimimaan kaikenlaisten tietojen kanssa. Siksi nimi, Possu!

Tässä aloittelijan Apache Pig -opetusohjelmassa opit
Sika Archirakenne
- ArchiPossun rakenne koostuu kahdesta osasta:
-
sika latina, joka on kieli
-
Ajonaikainen ympäristö, PigLatin-ohjelmien suorittamiseen.
Pig Latin -ohjelma koostuu sarjasta operaatioita tai muunnoksia, joita sovelletaan syöttötietoihin tulosteen tuottamiseksi. Nämä toiminnot kuvaavat tietovirtaa, joka muunnetaan suoritettavaksi esitykseksi Hadoop Pig -suoritusympäristössä. Alla näiden muutosten tulokset ovat sarja MapReduce-töitä, joista ohjelmoija ei ole tietoinen. Joten tavallaan Pig in Hadoop antaa ohjelmoijalle mahdollisuuden keskittyä dataan suorituksen luonteen sijaan.
PigLatin on suhteellisen jäykkä kieli, joka käyttää tietojenkäsittelystä tuttuja avainsanoja, esim. Liity, Group ja Filter.
Suoritustavat:
Pig in Hadoopilla on kaksi suoritustilaa:
-
Paikallinen tila: Tässä tilassa Hadoop Pig -kieli toimii yhdessä JVM ja käyttää paikallista tiedostojärjestelmää. Tämä tila sopii vain pienten tietojoukkojen analysointiin käyttämällä Pig in Hadoopissa
-
Kartan pienennystila: Tässä tilassa sian latinaksi kirjoitetut kyselyt käännetään kielelle MapReduce työpaikkoja ja niitä ajetaan Hadoop-klusterissa (klusteri voi olla pseudo- tai täysin hajautettu). MapReduce-tila, jossa on täysin hajautettu klusteri, on hyödyllinen, kun Pig suoritetaan suurilla tietojoukoilla.
Kuinka ladata ja asentaa Pig
Nyt tässä Apache Pig -opetusohjelmassa opimme lataamaan ja asentamaan Pig:n:
Ennen kuin aloitamme varsinaisen prosessin, varmista, että Hadoop on asennettu. Vaihda käyttäjäksi "hduser" (tunnusta käytetään Hadoop-määrityksen aikana, voit vaihtaa Hadoop-määrityksen aikana käytettyyn käyttäjätunnukseen)
Vaihe 1) Lataa Pig Hadoopin vakaa uusin julkaisu miltä tahansa peilisivustolta, joka on saatavilla osoitteessa
http://pig.apache.org/releases.html
valita tar.gz (ja ei src.tar.gz) ladattava tiedosto.
Vaihe 2) Kun lataus on valmis, siirry ladatun tar-tiedoston sisältävään hakemistoon ja siirrä tar paikkaan, johon haluat määrittää Pig Hadoopin. Tässä tapauksessa siirrymme hakemistoon /usr/local
Siirry hakemistoon, joka sisältää Pig Hadoop -tiedostot
cd /usr/local
Pura tar-tiedoston sisältö alla
sudo tar -xvf pig-0.12.1.tar.gz
Vaihe 3). Muuttaa ~ / .bashrc lisätäksesi Pigiin liittyviä ympäristömuuttujia
avoin ~ / .bashrc tiedosto missä tahansa valitsemassasi tekstieditorissa ja tee alla olevat muutokset -
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Vaihe 4) Hanki nyt tämä ympäristökokoonpano käyttämällä alla olevaa komentoa
. ~/.bashrc
Vaihe 5) Meidän on käännettävä uudelleen PIG tukea Hadoop 2.2.0
Tässä on vaiheet tämän tekemiseen -
Siirry PIG-kotihakemistoon
cd $PIG_HOME
Asenna Ant
sudo apt-get install ant
Huomautus: Lataus alkaa ja kuluttaa aikaa Internet-nopeuden mukaan.
Kääntää PIG uudelleen
sudo ant clean jar-all -Dhadoopversion=23
Huomaa, että tässä uudelleenkäännösprosessissa ladataan useita komponentteja. Joten järjestelmän pitäisi olla yhteydessä Internetiin.
Lisäksi, jos tämä prosessi jumissa jonnekin etkä näe liikettä komentokehotteessa yli 20 minuuttiin, paina Ctrl + c ja suorita sama komento uudelleen.
Meidän tapauksessamme se kestää 20 minuuttia
Vaihe 6) Testaa Sika asennus komennolla
pig -help
Esimerkki Pig Script
Käytämme Pig-skriptejä kussakin maassa myytyjen tuotteiden määrän selvittämiseen.
input: Syöttötietojoukkomme on CSV-tiedosto, MyyntiJan2009.csv
Vaihe 1) Käynnistä Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Vaihe 2) Pig in Big Data ottaa tiedoston kohteesta HDFS MapReduce-tilassa ja tallentaa tulokset takaisin HDFS:ään.
Kopioi tiedosto MyyntiJan2009.csv (tallennettu paikalliseen tiedostojärjestelmään, ~/input/SalesJan2009.csv) HDFS (Hadoop Distributed File System) -kotihakemistoon
Tässä Apache Pig -esimerkissä tiedosto on kansiossa. Jos tiedosto on tallennettu johonkin muuhun paikkaan, anna se nimi
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Tarkista, onko tiedosto todella kopioitu vai ei.
$HADOOP_HOME/bin/hdfs dfs -ls /
Vaihe 3) Sian kokoonpano
Siirry ensin kohtaan $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
avoin sika.ominaisuudet käyttämällä valitsemaasi tekstieditoria ja määritä lokitiedoston polku käyttämällä pig.lokitiedosto
sudo gedit pig.properties
Loger käyttää tätä tiedostoa virheiden kirjaamiseen.
Vaihe 4) Suorita komento "pig", joka käynnistää Pig-komentokehotteen, joka on interaktiivinen kuori Pig-kyselyt.
pig
Vaihe 5)Suorita Pig-komentokehotteessa alla olevat Pig-komennot järjestyksessä.
— A. Lataa tiedot sisältävä tiedosto.
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);
Paina Enter tämän komennon jälkeen.
— B. Ryhmittele tiedot kentän mukaan
GroupByCountry = GROUP salesTable BY Country;
— C. Jokaiselle tuple in "GroupByCountry", luo tuloksena oleva lomakkeen merkkijono-> Maan nimi: Myytyjen tuotteiden määrä
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Paina Enter tämän komennon jälkeen.
— D. Tallenna Data Flow -tulokset hakemistoon 'pig_output_sales' HDFS:llä
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Tämän komennon suorittaminen kestää jonkin aikaa. Kun olet valmis, sinun pitäisi nähdä seuraava näyttö
Vaihe 6) Tulos voidaan nähdä komentoliittymän kautta, kuten
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Tulokset ovat nähtävissä myös verkkokäyttöliittymän kautta mm.
Tulokset verkkokäyttöliittymän kautta -
avoin http://localhost:50070/
selaimessa.
Valitse nyt "Selaa tiedostojärjestelmää" ja navigoi ylös /user/hduser/pig_output_sales
avoin osa-r-00000