Vodič za Hadoop Pig: Što je Apache Pig? Architekstura, primjer
Počet ćemo s uvodom u Svinju
Što je Apache Pig?
Pig je programski jezik visoke razine koristan za analizu velikih skupova podataka. Pig je rezultat razvojnih napora u Yahoo!
U okviru MapReduce, programe je potrebno prevesti u niz faza Map i Reduce. Međutim, ovo nije model programiranja s kojim su analitičari podataka upoznati. Dakle, kako bi se premostio ovaj jaz, apstrakcija pod nazivom Pig izgrađena je na vrhu Hadoopa.
Apache Pig omogućuje ljudima da se više usredotoče na analiziranje masovnih skupova podataka i trošiti manje vremena na pisanje Map-Reduce programa. Slično svinjama, koje jedu bilo što, svinja Apache programski jezik dizajniran je za rad s bilo kojom vrstom podataka. Zato i naziv, Prase!

U ovom vodiču za Apache Pig za početnike naučit ćete-
- Što je SVINJA?
- Svinja Architektura
- Preduvjeti
- Kako preuzeti i instalirati Pig
- Primjer svinjskog scenarija
Svinja Architektura
The ArchiTektura Pig sastoji se od dvije komponente:
-
svinjski latinski, koji je jezik
-
Okruženje za vrijeme izvođenja, za pokretanje PigLatin programa.
Pig Latin program sastoji se od niza operacija ili transformacija koje se primjenjuju na ulazne podatke da bi se proizveo izlaz. Ove operacije opisuju tok podataka koji se prevodi u izvršni prikaz, pomoću Hadoop Pig izvršnog okruženja. Ispod, rezultati ovih transformacija su nizovi MapReduce poslova kojih programer nije svjestan. Dakle, na neki način, Pig in Hadoop omogućuje programeru da se usredotoči na podatke, a ne na prirodu izvršenja.
PigLatin je relativno čvršći jezik koji koristi poznate ključne riječi iz obrade podataka, npr. pridruživanje, grupiranje i filtriranje.
Načini izvršenja:
Pig u Hadoopu ima dva načina izvršavanja:
-
Lokalni način rada: U ovom načinu rada Hadoop Pig jezik radi u jednom JVM i koristi lokalni datotečni sustav. Ovaj način je prikladan samo za analizu malih skupova podataka pomoću Pig-a u Hadoopu
-
Način Map Reduce: U ovom načinu rada prevode se upiti napisani na latinskom MapReduce poslove i izvode se na Hadoop klasteru (klaster može biti pseudo ili potpuno distribuiran). Način MapReduce s potpuno distribuiranim klasterom koristan je za pokretanje Piga na velikim skupovima podataka.
Kako preuzeti i instalirati Pig
U ovom vodiču za Apache Pig naučit ćemo kako preuzeti i instalirati Pig:
Prije nego počnemo sa stvarnim procesom, provjerite imate li instaliran Hadoop. Promijenite korisnika u 'hduser' (ID koji se koristi tijekom konfiguracije Hadoop-a, možete se prebaciti na ID korisnika koji se koristi tijekom vaše konfiguracije Hadoop-a)
Korak 1) Preuzmite stabilno najnovije izdanje Pig Hadoopa s bilo kojeg od ogledala dostupnih na
http://pig.apache.org/releases.html
odabrati tar.gz (i ne src.tar.gz) datoteka za preuzimanje.
Korak 2) Nakon što je preuzimanje završeno, idite do direktorija koji sadrži preuzetu tar datoteku i premjestite tar na mjesto gdje želite postaviti Pig Hadoop. U ovom slučaju, premjestit ćemo se u /usr/local
Premjestite se u direktorij koji sadrži Pig Hadoop datoteke
cd /usr/local
Ekstrahirajte sadržaj tar datoteke kao ispod
sudo tar -xvf pig-0.12.1.tar.gz
Korak 3). izmijeniti ~ / .bashrc da biste dodali varijable okoline povezane s Pigom
Otvoren ~ / .bashrc datoteku u bilo kojem uređivaču teksta po vašem izboru i napravite donje izmjene-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Korak 4) Sada, izvor ove konfiguracije okruženja pomoću donje naredbe
. ~/.bashrc
Korak 5) Moramo ponovno kompajlirati PIG podržati Hadoop 2.2.0
Evo koraka za to -
Idite u matični direktorij PIG-a
cd $PIG_HOME
Instalirajte Ant
sudo apt-get install ant
Napomena: preuzimanje će započeti i trajat će ovisno o brzini interneta.
Ponovno kompajlirajte PIG
sudo ant clean jar-all -Dhadoopversion=23
Imajte na umu da se u ovom procesu rekompilacije preuzima više komponenti. Dakle, sustav bi trebao biti spojen na internet.
Također, u slučaju da je ovaj proces negdje zapeo i ne vidite nikakav pokret na naredbenom retku više od 20 minuta, pritisnite ctrl + c i ponovno pokrenite istu naredbu.
U našem slučaju to traje 20 minuta
Korak 6) Testirajte Svinja instalacija pomoću naredbe
pig -help
Primjer svinjskog scenarija
Koristit ćemo Pig Scripts kako bismo pronašli broj prodanih proizvoda u svakoj zemlji.
Ulazni: Naš ulazni skup podataka je CSV datoteka, ProdajaSiječanj2009.csv
Korak 1) Pokrenite Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Korak 2) Svinja u velikim podacima uzima datoteku iz HDFS u načinu MapReduce i pohranjuje rezultate natrag u HDFS.
Kopiraj datoteke ProdajaSiječanj2009.csv (pohranjeno u lokalnom datotečnom sustavu, ~/input/SalesJan2009.csv) u matični direktorij HDFS (Hadoop distribuirani datotečni sustav).
Ovdje u ovom primjeru Apache Piga, datoteka je u ulaznoj mapi. Ako je datoteka pohranjena na nekom drugom mjestu, dajte to ime
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Provjerite je li datoteka stvarno kopirana ili ne.
$HADOOP_HOME/bin/hdfs dfs -ls /
Korak 3) Konfiguracija svinje
Prvo idite na $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Otvoren svinja.svojstva pomoću uređivača teksta po vašem izboru i navedite stazu datoteke dnevnika pomoću pig.logfile
sudo gedit pig.properties
Loger će koristiti ovu datoteku za zapisivanje pogrešaka.
Korak 4) Pokrenite naredbu 'pig' koja će pokrenuti Pig naredbeni redak koji je interaktivna ljuska Pig upita.
pig
Korak 5)U naredbenom retku Grunt za Pig, redom izvršite Pig naredbe.
— A. Učitajte datoteku koja sadrži podatke.
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);
Pritisnite Enter nakon ove naredbe.
— B. Grupirajte podatke po polju Država
GroupByCountry = GROUP salesTable BY Country;
— C. Za svaku torku u 'Grupiraj po zemlji', generirajte rezultirajući niz u obliku-> Naziv zemlje: Broj prodanih proizvoda
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Pritisnite Enter nakon ove naredbe.
— D. Pohranite rezultate protoka podataka u imenik 'pig_output_sales' na HDFS-u
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Za izvršenje ove naredbe trebat će neko vrijeme. Kada završite, trebali biste vidjeti sljedeći zaslon
Korak 6) Rezultat se može vidjeti kroz naredbeno sučelje kao,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Rezultati se također mogu vidjeti putem web sučelja kao-
Rezultati putem web sučelja-
Otvoren http://localhost:50070/
u web pregledniku.
Sada odaberite "Pregledaj datotečni sustav" i idite do /user/hduser/pig_output_sales
Otvoren dio-r-00000