Hadoop Pig bemutató: Mi az Apache Pig? Architecture, Példa
Kezdjük a Pig bemutatásával
Mi az Apache Pig?
A Pig egy magas szintű programozási nyelv, amely hasznos nagy adathalmazok elemzéséhez. A Pig a Yahoo!
A MapReduce keretrendszerben a programokat Map és Reduce szakaszok sorozatába kell lefordítani. Ez azonban nem egy olyan programozási modell, amelyet az adatelemzők ismernek. Tehát ennek a szakadéknak az áthidalása érdekében egy Pig nevű absztrakciót építettek a Hadoop tetejére.
Az Apache Pig lehetővé teszi az emberek számára, hogy jobban összpontosítsanak tömeges adathalmazok elemzése, és kevesebb időt tölteni a Map-Reduce programok írásával. Hasonló a Disznókhoz, akik bármit megesznek, az apacs malachoz programozási nyelv úgy tervezték, hogy bármilyen típusú adattal dolgozzon. Ezért a név, Malac!

Ebben a kezdő Apache Pig oktatóanyagban megtudhatja,
Disznó Architectúra
A ArchiA Pig szerkezete két összetevőből áll:
-
disznó latin, ami egy nyelv
-
futásidejű környezet, PigLatin programok futtatásához.
A Pig Latin program műveletek vagy átalakítások sorozatából áll, amelyeket a bemeneti adatokra alkalmaznak a kimenet előállításához. Ezek a műveletek egy adatfolyamot írnak le, amelyet a Hadoop Pig végrehajtási környezet végrehajtható reprezentációvá fordít le. Az átalakítások eredményei alatt MapReduce-feladatok sorozata látható, amelyekről a programozó nem tud. Tehát bizonyos értelemben a Pig in Hadoop lehetővé teszi a programozó számára, hogy a végrehajtás természete helyett az adatokra összpontosítson.
A PigLatin egy viszonylag merev nyelv, amely az adatfeldolgozásból ismert kulcsszavakat használ, pl. Join, Group és Filter.
Végrehajtási módok:
A Pig in Hadoop két végrehajtási móddal rendelkezik:
-
Helyi mód: Ebben a módban a Hadoop Pig nyelv egyben fut JVM és helyi fájlrendszert használ. Ez a mód csak kis adatkészletek elemzésére alkalmas a Hadoop Pig segítségével
-
Térkép kicsinyítési mód: Ebben a módban a Pig Latin nyelven írt lekérdezések lefordításra kerülnek MapReduce feladatokat, és Hadoop-fürtön futnak (a fürt lehet pszeudo vagy teljesen elosztott). A MapReduce mód a teljesen elosztott fürttel hasznos a Pig nagy adatkészleteken való futtatásához.
A Pig letöltése és telepítése
Ebben az Apache Pig oktatóanyagban megtudjuk, hogyan kell letölteni és telepíteni a Pig alkalmazást:
Mielőtt elkezdené a tényleges folyamatot, győződjön meg arról, hogy telepítve van a Hadoop. Felhasználó módosítása „hduser”-re (a Hadoop konfigurációja során használt azonosító, átválthat a Hadoop konfigurációja során használt felhasználói azonosítóra)
Step 1) Töltse le a Pig Hadoop stabil legújabb kiadását a következő címen elérhető tükrözések bármelyikéről
http://pig.apache.org/releases.html
választ tar.gz (és nem src.tar.gz) letöltendő fájl.
Step 2) A letöltés befejezése után keresse meg a letöltött tar fájlt tartalmazó könyvtárat, és helyezze át a tar-t arra a helyre, ahol be szeretné állítani a Pig Hadoop programot. Ebben az esetben a /usr/local könyvtárba lépünk
Lépjen egy Pig Hadoop fájlokat tartalmazó könyvtárba
cd /usr/local
Bontsa ki a tar fájl tartalmát az alábbiak szerint
sudo tar -xvf pig-0.12.1.tar.gz
3. lépés). módosít ~ / .bashrc a Pig-hez kapcsolódó környezeti változók hozzáadásához
Nyisd ki ~ / .bashrc fájlt bármelyik szövegszerkesztőben, és végezze el az alábbi módosításokat:
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Step 4) Most szerezze be ezt a környezetkonfigurációt az alábbi paranccsal
. ~/.bashrc
Step 5) Újra kell fordítanunk MALAC támogatni Hadoop 2.2.0
Íme a lépések ehhez:
Lépjen a PIG kezdőkönyvtárába
cd $PIG_HOME
Telepítse az Ant
sudo apt-get install ant
Megjegyzés: A letöltés elindul, és az internet sebességétől függően időt vesz igénybe.
Fordítsa újra a PIG-et
sudo ant clean jar-all -Dhadoopversion=23
Kérjük, vegye figyelembe, hogy ebben az újrafordítási folyamatban több összetevő is letöltődik. Tehát egy rendszernek csatlakoznia kell az internethez.
Továbbá, ha ez a folyamat valahol elakadt, és több mint 20 percig nem lát semmilyen mozgást a parancssorban, nyomja meg a Ctrl + C és futtassa újra ugyanazt a parancsot.
Esetünkben 20 percet vesz igénybe
Lépés 6) Teszteld a Disznó paranccsal telepítse
pig -help
Példa Pig Script
Az egyes országokban eladott termékek számának meghatározásához Pig Scripteket használunk.
Bemenet: A bemeneti adatkészletünk egy CSV fájl, ÉrtékesítésJan2009.csv
Lépés 1) Indítsa el a Hadoop-ot
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Lépés 2) A Pig in Big Data fájlt vesz át innen HDFS MapReduce módban, és visszatárolja az eredményeket HDFS-be.
Fájl másolás, fájl másolása ÉrtékesítésJan2009.csv (helyi fájlrendszeren tárolva, ~/input/SalesJan2009.csv) a HDFS (Hadoop Distributed File System) kezdőkönyvtárába
Ebben az Apache Pig példában a fájl Mappa bemenetben van. Ha a fájl más helyen van tárolva, adja meg ezt a nevet
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Ellenőrizze, hogy egy fájl valóban át van-e másolva vagy sem.
$HADOOP_HOME/bin/hdfs dfs -ls /
Step 3) Pig konfiguráció
Először keresse meg a $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Nyisd ki sertés.tulajdonságok egy tetszőleges szövegszerkesztővel, és a segítségével adja meg a naplófájl elérési útját pig.naplófájl
sudo gedit pig.properties
A Loger ezt a fájlt használja fel a hibák naplózására.
Step 4) Futtassa a „pig” parancsot, amely elindítja a Pig parancssort, amely egy interaktív shell Pig lekérdezések.
pig
Step 5)A Pig Grunt parancssorában hajtsa végre a Pig parancsokat sorrendben.
— A. Töltse be az adatokat tartalmazó fájlt.
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);
A parancs után nyomja meg az Enter billentyűt.
— B. Csoportosítsa az adatokat az Ország mező szerint
GroupByCountry = GROUP salesTable BY Country;
— C. Minden egyes sorhoz "GroupByCountry", generálja a kapott karakterláncot a form-> Ország neve: Eladott termékek száma
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
A parancs után nyomja meg az Enter billentyűt.
— D. Tárolja a Data Flow eredményeit a könyvtárban "pig_output_sales" HDFS-en
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Ennek a parancsnak a végrehajtása eltart egy ideig. Ha elkészült, a következő képernyőt kell látnia
Step 6) Az eredmény a parancsfelületen keresztül látható:
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Az eredmények webes felületen is megtekinthetők, pl.
Eredmények webes felületen keresztül-
Nyisd ki http://localhost:50070/
egy böngészőben.
Most válassza ki "Tallózás a fájlrendszerben" és navigáljon fel /user/hduser/pig_output_sales
Nyisd ki rész-r-00000