Учебное пособие по Hadoop Pig: что такое Apache Pig? Archiтектура, пример
Мы начнем со знакомства с Pig.
Что такое Apache Pig?
Pig — это язык программирования высокого уровня, полезный для анализа больших наборов данных. Pig стал результатом усилий разработчиков Yahoo!
В рамках MapReduce программы необходимо преобразовать в серию этапов Map и Reduce. Однако это не та модель программирования, с которой знакомы аналитики данных. Итак, чтобы восполнить этот пробел, поверх Hadoop была построена абстракция под названием Pig.
Apache Pig позволяет людям больше сосредоточиться на анализировать большие объемы данных и тратить меньше времени на написание программ Map-Reduce. Свинья апачи похожа на свиней, которые едят что угодно. язык программирования предназначен для работы с любыми данными. Вот почему такое имя, Свинья!
В этом уроке Apache Pig для начинающих вы научитесь:
- Что такое СВИНЬЯ?
- Свинья Archiтекстура
- Предпосылки
- Как скачать и установить Pig
- Пример сценария свиньи
Свинья Archiтекстура
Команда ArchiТекстура Свиньи состоит из двух компонентов:
-
Свинья латынь, какой язык
-
Среда выполнения, для запуска программ PigLatin.
Программа Pig Latin состоит из ряда операций или преобразований, которые применяются к входным данным для получения выходных данных. Эти операции описывают поток данных, который преобразуется в исполняемое представление средой выполнения Hadoop Pig. Ниже результаты этих преобразований представляют собой серию заданий MapReduce, о которых программист не подозревает. Таким образом, в каком-то смысле Pig в Hadoop позволяет программисту сосредоточиться на данных, а не на характере выполнения.
PigLatin — относительно жесткий язык, в котором используются знакомые ключевые слова из обработки данных, например «Объединение», «Группировка» и «Фильтр».
Режимы выполнения:
Pig в Hadoop имеет два режима выполнения:
-
Локальный режим. В этом режиме язык Hadoop Pig запускается в одном JVM и использует локальную файловую систему. Этот режим подходит только для анализа небольших наборов данных с использованием Pig в Hadoop.
-
Режим сокращения карты: в этом режиме запросы, написанные на латыни Pig, переводятся на Уменьшение карты задания и выполняются в кластере 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 поддерживать Хадуп 2.2.0
Вот шаги, чтобы сделать это:
Перейти в домашний каталог PIG
cd $PIG_HOME
Установить Муравей
sudo apt-get install ant
Примечание. Начнется загрузка, которая займет время в зависимости от скорости вашего интернета.
Перекомпилировать PIG
sudo ant clean jar-all -Dhadoopversion=23
Обратите внимание, что в процессе перекомпиляции загружается несколько компонентов. Итак, система должна быть подключена к Интернету.
Кроме того, если этот процесс где-то завис и вы не видите никакого движения в командной строке более 20 минут, нажмите Ctrl + C и повторите ту же команду.
В нашем случае это занимает 20 минут.
Шаг 6) Проверьте Свинья установка с помощью команды
pig -help
Пример сценария свиньи
Мы будем использовать скрипты Pig, чтобы определить количество продуктов, проданных в каждой стране.
Входной сигнал: Наш набор входных данных представляет собой файл CSV, Продажиянварь2009.csv
Шаг 1) Запустить Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Шаг 2) Свинья в больших данных берет файл из HDFS в режиме MapReduce и сохраняет результаты обратно в HDFS.
Копировать файл Продажиянварь2009.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. Сохранение результатов Data Flow в каталоге. '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