Урок за Hadoop Pig: Какво е Apache Pig? Archiтектура, Пример
Ще започнем с въведението към прасето
Какво е Apache Pig?
Pig е език за програмиране на високо ниво, полезен за анализиране на големи набори от данни. Pig е резултат от усилията за разработка на Yahoo!
В рамките на MapReduce програмите трябва да бъдат преведени в поредица от етапи Map и Reduce. Това обаче не е модел на програмиране, с който анализаторите на данни са запознати. И така, за да се преодолее тази празнина, върху Hadoop беше изградена абстракция, наречена Pig.
Apache Pig позволява на хората да се съсредоточат повече върху анализиране на масивни набори от данни и прекарване на по-малко време в писане на Map-Reduce програми. Подобно на прасетата, които ядат всичко, прасето Apache програмен език е проектиран да работи с всякакъв вид данни. Ето защо името, Прасе!

В този урок за Apache Pig за начинаещи ще научите-
- Какво е PIG?
- Прасе Archiтекстура
- Предпоставки
- Как да изтеглите и инсталирате Pig
- Примерен скрипт за прасе
Прасе Archiтекстура
- Archiструктурата на Pig се състои от два компонента:
-
свинска латиница, което е език
-
среда за изпълнение, за стартиране на програми на PigLatin.
Програмата Pig Latin се състои от поредица от операции или трансформации, които се прилагат към входните данни, за да се получи изход. Тези операции описват поток от данни, който се превежда в изпълнимо представяне от среда за изпълнение на Hadoop Pig. Отдолу резултатите от тези трансформации са поредица от задания на MapReduce, за които програмистът не знае. Така че, в известен смисъл, Pig в Hadoop позволява на програмиста да се съсредоточи върху данните, а не върху естеството на изпълнението.
PigLatin е сравнително твърд език, който използва познати ключови думи от обработката на данни, напр. Присъединяване, Групиране и Филтриране.
Режими на изпълнение:
Pig в Hadoop има два режима на изпълнение:
-
Локален режим: В този режим езикът Hadoop Pig работи в единичен режим JVM и използва локална файлова система. Този режим е подходящ само за анализ на малки набори от данни с помощта на Pig в Hadoop
-
Режим Map Reduce: В този режим заявките, написани на свинска латиница, се превеждат на MapReduce задания и се изпълняват на Hadoop клъстер (клъстерът може да бъде псевдо или напълно разпределен). Режимът MapReduce с напълно разпределен клъстер е полезен за стартиране на Pig върху големи набори от данни.
Как да изтеглите и инсталирате Pig
Сега в този урок за Apache Pig ще научим как да изтеглим и инсталираме Pig:
Преди да започнем с действителния процес, уверете се, че имате инсталиран Hadoop. Променете потребителя на „hduser“ (идентификатор, използван при конфигурацията на Hadoop, можете да превключите към потребителския идентификатор, използван по време на вашата конфигурация на Hadoop)
Стъпка 1) Изтеглете най-новата стабилна версия на Pig Hadoop от всеки един от огледалните сайтове, достъпни на
http://pig.apache.org/releases.html
Изберете tar.gz (и не src.tar.gz) файл за изтегляне.
Стъпка 2) След като изтеглянето приключи, навигирайте до директорията, съдържаща изтегления tar файл, и преместете tar на мястото, където искате да настроите Pig Hadoop. В този случай ще се преместим в /usr/local
Преместете се в директория, съдържаща Pig Hadoop файлове
cd /usr/local
Извлечете съдържанието на tar файла, както е показано по-долу
sudo tar -xvf pig-0.12.1.tar.gz
Етап 3). Промяна ~ / .bashrc за добавяне на свързани с Pig променливи на средата
отворено ~ / .bashrc файл във всеки текстов редактор по ваш избор и направете модификациите по-долу-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Стъпка 4) Сега извлечете тази конфигурация на средата, като използвате командата по-долу
. ~/.bashrc
Стъпка 5) Трябва да прекомпилираме PIG да подкрепя Hadoop 2.2.0
Ето стъпките за това-
Отидете в началната директория на PIG
cd $PIG_HOME
Инсталирайте Ant
sudo apt-get install ant
Забележка: Изтеглянето ще започне и ще отнеме време според вашата интернет скорост.
Прекомпилирайте PIG
sudo ant clean jar-all -Dhadoopversion=23
Моля, обърнете внимание, че в този процес на повторно компилиране се изтеглят множество компоненти. Така че системата трябва да бъде свързана към интернет.
Освен това, в случай че този процес е заседнал някъде и не виждате никакво движение в командния ред повече от 20 минути, натиснете ctrl + c и повторете същата команда.
В нашия случай това отнема 20 минути
Стъпка 6) Тествайте Прасе инсталация с помощта на командата
pig -help
Примерен скрипт за прасе
Ще използваме Pig Scripts, за да намерим броя на продадените продукти във всяка държава.
Вход: Нашият набор от входни данни е CSV файл, SalesJan2009.csv
Стъпка 1) Стартирайте Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Стъпка 2) Pig в Big Data взема файл от HDFS в режим MapReduce и съхранява резултатите обратно в HDFS.
Копиране на файл SalesJan2009.csv (съхранява се в локална файлова система, ~/input/SalesJan2009.csv) в началната директория на HDFS (разпределена файлова система Hadoop).
Тук, в този пример на Apache Pig, файлът е във входна папка. Ако файлът се съхранява на друго място, дайте това име
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Проверете дали файлът наистина е копиран или не.
$HADOOP_HOME/bin/hdfs dfs -ls /
Стъпка 3) Конфигурация на прасе
Първо отворете $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
отворено прасе.свойства с помощта на текстов редактор по ваш избор и посочете пътя на регистрационния файл с помощта на pig.logfile
sudo gedit pig.properties
Loger ще използва този файл, за да регистрира грешки.
Стъпка 4) Изпълнете командата 'pig', която ще стартира командния ред на Pig, който е интерактивна обвивка на Pig заявки.
pig
Стъпка 5)В командния ред на Grunt за Pig изпълнете по ред командите на Pig.
— A. Заредете файла, съдържащ данни.
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);
Натиснете Enter след тази команда.
— Б. Групиране на данни по поле Държава
GroupByCountry = GROUP salesTable BY Country;
— C. За всеки кортеж в „Групиране по държава“, генерирайте резултантния низ от формата-> Име на държавата: Брой продадени продукти
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Натиснете Enter след тази команда.
— D. Съхранявайте резултатите от потока от данни в директорията 'pig_output_sales' на HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Тази команда ще отнеме известно време за изпълнение. След като сте готови, трябва да видите следния екран
Стъпка 6) Резултатът може да се види чрез командния интерфейс като,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Резултатите могат да се видят и чрез уеб интерфейс като-
Резултати чрез уеб интерфейс-
отворено http://localhost:50070/
в уеб браузър.
Сега изберете „Преглед на файловата система“ и навигирайте до /user/hduser/pig_output_sales
отворено част-r-00000