Tutorial Hadoop Pig: Ce este Apache Pig? Architectură, Exemplu
Vom începe cu introducerea în Pig
Ce este Apache Pig?
Pig este un limbaj de programare la nivel înalt util pentru analiza seturi mari de date. Pig a fost rezultatul efortului de dezvoltare de la Yahoo!
Într-un cadru MapReduce, programele trebuie traduse într-o serie de etape Map și Reduce. Cu toate acestea, acesta nu este un model de programare cu care analiștii de date sunt familiarizați. Așadar, pentru a acoperi acest decalaj, a fost construită o abstracție numită Pig deasupra lui Hadoop.
Apache Pig le permite oamenilor să se concentreze mai mult asupra analizând seturi de date în vrac și să petreceți mai puțin timp scriind programe Map-Reduce. Similar cu Porcii, care mănâncă orice, Porcul Apache limbaj de programare este conceput pentru a lucra cu orice tip de date. De aceea numele, Porc!

În acest tutorial Apache Pig pentru începători, veți învăța-
- Ce este PORCUL?
- Porc Architectură
- Cerințe preliminare
- Cum să descărcați și să instalați Pig
- Exemplu de Script Pig
Porc Architectură
ArchiTectura porcului constă din două componente:
-
Pasareasca, care este o limbă
-
Un mediu de rulare, pentru rularea programelor PigLatin.
Un program Pig Latin constă dintr-o serie de operații sau transformări care sunt aplicate datelor de intrare pentru a produce rezultate. Aceste operațiuni descriu un flux de date care este tradus într-o reprezentare executabilă, de către mediul de execuție Hadoop Pig. Dedesubt, rezultatele acestor transformări sunt serii de joburi MapReduce de care un programator nu este conștient. Deci, într-un fel, Pig in Hadoop permite programatorului să se concentreze mai degrabă pe date decât pe natura execuției.
PigLatin este un limbaj relativ rigid, care folosește cuvinte cheie familiare din procesarea datelor, de exemplu, Join, Group și Filter.
Moduri de executie:
Pig în Hadoop are două moduri de execuție:
-
Mod local: în acest mod, limba Hadoop Pig rulează într-o singură FMV și folosește sistemul de fișiere local. Acest mod este potrivit numai pentru analiza seturilor de date mici folosind Pig în Hadoop
-
Modul Hartă Reducere: În acest mod, interogările scrise în Pig Latin sunt traduse în MapReduce joburi și sunt rulate pe un cluster Hadoop (clusterul poate fi pseudo sau complet distribuit). Modul MapReduce cu clusterul complet distribuit este util pentru a rula Pig pe seturi de date mari.
Cum să descărcați și să instalați Pig
Acum, în acest tutorial Apache Pig, vom învăța cum să descărcați și să instalați Pig:
Înainte de a începe cu procesul propriu-zis, asigurați-vă că aveți Hadoop instalat. Schimbați utilizatorul în „hduser” (id-ul folosit în timpul configurației Hadoop, puteți comuta la userid-ul folosit în timpul configurației Hadoop)
Pas 1) Descărcați cea mai recentă versiune stabilă a Pig Hadoop de pe oricare dintre site-urile oglinzi disponibile la
http://pig.apache.org/releases.html
Selectați tar.gz (si nu src.tar.gz) fișier de descărcat.
Pas 2) Odată ce descărcarea este finalizată, navigați la directorul care conține fișierul tar descărcat și mutați tar-ul în locația în care doriți să configurați Pig Hadoop. În acest caz, ne vom muta în /usr/local
Mutați-vă într-un director care conține fișiere Pig Hadoop
cd /usr/local
Extrageți conținutul fișierului tar ca mai jos
sudo tar -xvf pig-0.12.1.tar.gz
Pasul 3). Modifica ~ / .bashrc pentru a adăuga variabile de mediu legate de Pig
Operatii Deschise ~ / .bashrc fișier în orice editor de text la alegere și faceți modificările de mai jos-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Pas 4) Acum, generați această configurație de mediu folosind comanda de mai jos
. ~/.bashrc
Pas 5) Trebuie să recompilăm PORC a sustine Hadoop 2.2.0
Iată pașii pentru a face asta -
Accesați directorul principal PIG
cd $PIG_HOME
Instalați Ant
sudo apt-get install ant
Notă: Descărcarea va începe și va consuma timp în funcție de viteza dvs. de internet.
Recopilați PIG
sudo ant clean jar-all -Dhadoopversion=23
Vă rugăm să rețineți că în acest proces de recompilare sunt descărcate mai multe componente. Deci, un sistem ar trebui să fie conectat la internet.
De asemenea, în cazul în care acest proces s-a blocat undeva și nu vedeți nicio mișcare la promptul de comandă mai mult de 20 de minute, apoi apăsați Ctrl + c și rulați din nou aceeași comandă.
În cazul nostru, durează 20 de minute
Pas 6) Testați Porc instalare folosind comanda
pig -help
Exemplu de Script Pig
Vom folosi Pig Scripts pentru a găsi numărul de produse vândute în fiecare țară.
Intrare: Setul nostru de date de intrare este un fișier CSV, VânzăriJan2009.csv
Pas 1) Porniți Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Pas 2) Pig in Big Data preia un fișier din HDFS în modul MapReduce și stochează rezultatele înapoi în HDFS.
Copiaza fisier VânzăriJan2009.csv (stocat pe sistemul de fișiere local, ~/input/SalesJan2009.csv) în directorul principal HDFS (Hadoop Distributed File System).
Aici, în acest exemplu Apache Pig, fișierul este în Folder input. Dacă fișierul este stocat într-o altă locație, dați acest nume
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Verificați dacă un fișier este copiat sau nu.
$HADOOP_HOME/bin/hdfs dfs -ls /
Pas 3) Configurație porc
Mai întâi, navigați la $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Operatii Deschise porc.proprietăţi folosind un editor de text la alegere și specificați calea fișierului jurnal folosind pig.logfile
sudo gedit pig.properties
Loger va folosi acest fișier pentru a înregistra erori.
Pas 4) Rulați comanda „pig”, care va porni promptul de comandă Pig, care este o interogare interactivă de porc.
pig
Pas 5)În promptul de comandă Grunt pentru Pig, executați comenzile Pig de mai jos în ordine.
— A. Încărcați fișierul care conține date.
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);
Apăsați Enter după această comandă.
— B. Grupați datele după câmpul Țară
GroupByCountry = GROUP salesTable BY Country;
— C. Pentru fiecare tuplu în „Grup după țară”, generați șirul rezultat din formular-> Nume Țară: Nr. produse vândute
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Apăsați Enter după această comandă.
— D. Stocați rezultatele Fluxului de date în director „vânzări_ieșiri_porci” pe HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Această comandă va dura ceva timp pentru a se executa. Odată terminat, ar trebui să vedeți următorul ecran
Pas 6) Rezultatul poate fi văzut prin interfața de comandă ca,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Rezultatele pot fi văzute și printr-o interfață web ca-
Rezultate printr-o interfață web-
Operatii Deschise http://localhost:50070/
într-un browser web.
Acum selectați „Răsfoiește sistemul de fișiere” și navigați până la /user/hduser/pig_output_sales
Operatii Deschise piesa-r-00000