apache pig что это
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Apache Pig
Содержание
Pig Latin
Pig Latin – относительно простой язык, выполняющий операторы. Оператор – это процедура, принимающая входные данные (например, массив, состоящий из набора записей) и формирующая на выходе другой массив. Массив – это структура, подобная таблице реляционной базы данных, в которой записи аналогичны строкам таблицы и состоят из полей. В сценариях Pig Latin часто используется определенный алгоритм, в котором данные считываются из файловой системы, затем над ними выполняется ряд действий (одно или несколько преобразований), после чего конечная структура записывается обратно в файловую систему.
Операторы Pig Latin работают с отношениями (и называются реляционными операторами). Ниже приведены основные реляционные операторы Pig:
Установка
Требования
Обязательные
Для пользователей Unix и Windows необходимо:
Опциональные
Загрузка Pig
Для загрузки Pig необходимо произвести следующие действия:
Сборка Pig
Для сборки Pig необходимо произвести следующие действия:
Видео с установкой
Работа с Pig и примеры использования
Команды Pig и операторы Pig Latin можно выполнять в различных режимах. Эти режимы приведены в таблице ниже:
Local Mode | Tez Local Mode | Spark Local Mode | Mapreduce Mode | Tez Mode | Spark Mode | |
---|---|---|---|---|---|---|
Интерактивный режим | да | экспериментальный | да | да | да | да |
Режим Batch | да | экспериментальный | да | да | да | да |
Режимы выполнения
В Pig есть 6 видов режимов выполнения:
Интерактивный режим
Запустить Pig в интерактивном режиме можно с помощью оболочки Grunt. Вызвать оболочку Grunt можно командой pig в терминале.
В примере ниже выражение Pig Latin производит извлечение идентификаторов всех пользователей из файла /etc/passw. В первую очередь нужно скопировать файл /etc/passwd в локальную рабочую директорию. Затем перейти в оболочку Grunt (c помощью команды pig) и выполнить скрипт, указанный ниже. Оператор DUMP выведет результат в терминал.
Режим Batch
Чтобы выполнить скрипт Pig из файла, например в локальном режиме, необходимо выполнить следующую команду:
Инструкции в Pig Latin
Инструкции Pig Latin обычно организованы следующим образом:
Стоит учитывать, что операторы DUMP или STORE необходимы для генерирования выходных данных.
Загрузка данных
Для загрузки данных в Pig и их чтения используются операторы LOAD и load/store (PigStorage является функцией загрузки по умолчанию)
Работа с данными
Pig позволяет преобразовывать данные множеством способов. Для стоит ознакомиться с этими операторами:
Хранение промежуточных результатов
Pig хранит промежуточные данные, сгенерированные задачами MapReduce во временной директории на файловой системе HDFS. Эта директория должна существовать на кластере HDFS. Её можно сконфигурировать с помощью свойства pig.temp.dir. Значением по умолчанию для этого свойства является «/tmp».
Хранение окончательных результатов
Отладка в Pig Latin
В Pig Latin есть операторы для отладки инструкций Pig Latin:
СОДЕРЖАНИЕ
История
Версия | Исходная дата выпуска | Последняя версия | Дата выпуска | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Старая версия, больше не поддерживается: 0,1 | 2008-09-11 | 0.1.1 | 2008-12-05 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,2 | 2009-04-08 | 0.2.0 | 2009-04-08 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,3 | 2009-06-25 | 0.3.0 | 2009-06-25 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,4 | 2009-08-29 | 0.4.0 | 2009-08-29 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,5 | 2009-09-29 | 0.5.0 | 2009-09-29 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,6 | 2010-03-01 | 0.6.0 | 2010-03-01 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,7 | 2010-05-13 | 0.7.0 | 2010-05-13 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,8 | 2010-12-17 | 0.8.1 | 2011-04-24 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,9 | 2011-07-29 | 0.9.2 | 2012-01-22 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,10 | 2012-01-22 | 0.10.1 | 2012-04-25 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,11 | 2013-02-21 | 0.11.1 | 2013-04-01 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,12 | 2013-10-14 | 0.12.1 | 2014-04-14 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,13 | 2014-07-04 | 0,13,0 | 2014-07-04 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,14 | 2014-11-20 | 0,14,0 | 2014-11-20 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,15 | 2015-06-06 | 0,15,0 | 2015-06-06 | ||||||||||||||||||||||||||||||
Старая версия, больше не поддерживается: 0,16 | 2016-06-08 | 0,16,0 | 2016-06-08 | ||||||||||||||||||||||||||||||
Текущая стабильная версия: 0,17 | 2017-06-19 | 0,17,0 | 2017-06-19 | ||||||||||||||||||||||||||||||
Local Mode | Tez Local Mode | Spark Local Mode | Mapreduce Mode | Tez Mode | Spark Mode | |
---|---|---|---|---|---|---|
Интерактивный режим | да | экспериментальный | да | да | да | да |
Режим Batch | да | экспериментальный | да | да | да | да |
Режимы выполнения
В Pig есть 6 видов режимов выполнения:
Интерактивный режим
Запустить Pig в интерактивном режиме можно с помощью оболочки Grunt. Вызвать оболочку Grunt можно командой pig в терминале.
В примере ниже выражение Pig Latin производит извлечение идентификаторов всех пользователей из файла /etc/passw. В первую очередь нужно скопировать файл /etc/passwd в локальную рабочую директорию. Затем перейти в оболочку Grunt (c помощью команды pig) и выполнить скрипт, указанный ниже. Оператор DUMP выведет результат в терминал.
Режим Batch
Чтобы выполнить скрипт Pig из файла, например в локальном режиме, необходимо выполнить следующую команду:
Инструкции в Pig Latin
Инструкции Pig Latin обычно организованы следующим образом:
Стоит учитывать, что операторы DUMP или STORE необходимы для генерирования выходных данных.
Загрузка данных
Для загрузки данных в Pig и их чтения используются операторы LOAD и load/store (PigStorage является функцией загрузки по умолчанию)
Работа с данными
Pig позволяет преобразовывать данные множеством способов. Для стоит ознакомиться с этими операторами:
Хранение промежуточных результатов
Pig хранит промежуточные данные, сгенерированные задачами MapReduce во временной директории на файловой системе HDFS. Эта директория должна существовать на кластере HDFS. Её можно сконфигурировать с помощью свойства pig.temp.dir. Значением по умолчанию для этого свойства является «/tmp».
Хранение окончательных результатов
Отладка в Pig Latin
В Pig Latin есть операторы для отладки инструкций Pig Latin:
Apache Pig — Краткое руководство
Apache Pig — это абстракция над MapReduce. Это инструмент / платформа, которая используется для анализа больших наборов данных, представляющих их как потоки данных. Свинья обычно используется с Hadoop ; мы можем выполнять все операции с данными в Hadoop, используя Apache Pig.
Зачем нам Apache Pig?
Программисты, которые не очень хороши в Java, обычно борются с работой с Hadoop, особенно при выполнении любых задач MapReduce. Apache Pig — благо для всех таких программистов.
Pig Latin — это SQL-подобный язык, и Apache Pig легко освоить, если вы знакомы с SQL.
Apache Pig предоставляет множество встроенных операторов для поддержки операций с данными, таких как объединения, фильтры, упорядочение и т. Д. Кроме того, он также предоставляет вложенные типы данных, такие как кортежи, сумки и карты, которые отсутствуют в MapReduce.
Pig Latin — это SQL-подобный язык, и Apache Pig легко освоить, если вы знакомы с SQL.
Apache Pig предоставляет множество встроенных операторов для поддержки операций с данными, таких как объединения, фильтры, упорядочение и т. Д. Кроме того, он также предоставляет вложенные типы данных, такие как кортежи, сумки и карты, которые отсутствуют в MapReduce.
Особенности Свиньи
Apache Pig поставляется со следующими функциями —
Богатый набор операторов — предоставляет множество операторов для выполнения таких операций, как объединение, сортировка, фильтрация и т. Д.
Простота программирования — Pig Latin похож на SQL, и его легко написать, если вы хорошо разбираетесь в SQL.
Возможности оптимизации — задачи в Apache Pig автоматически оптимизируют их выполнение, поэтому программистам необходимо сосредоточиться только на семантике языка.
Расширяемость — Используя существующие операторы, пользователи могут разрабатывать свои собственные функции для чтения, обработки и записи данных.
UDF’s — Pig предоставляет возможность создавать пользовательские функции на других языках программирования, таких как Java, а также вызывать или встраивать их в сценарии Pig.
Обрабатывает все виды данных — Apache Pig анализирует все виды данных, как структурированных, так и неструктурированных. Он сохраняет результаты в HDFS.
Богатый набор операторов — предоставляет множество операторов для выполнения таких операций, как объединение, сортировка, фильтрация и т. Д.
Простота программирования — Pig Latin похож на SQL, и его легко написать, если вы хорошо разбираетесь в SQL.
Возможности оптимизации — задачи в Apache Pig автоматически оптимизируют их выполнение, поэтому программистам необходимо сосредоточиться только на семантике языка.
Расширяемость — Используя существующие операторы, пользователи могут разрабатывать свои собственные функции для чтения, обработки и записи данных.
UDF’s — Pig предоставляет возможность создавать пользовательские функции на других языках программирования, таких как Java, а также вызывать или встраивать их в сценарии Pig.
Обрабатывает все виды данных — Apache Pig анализирует все виды данных, как структурированных, так и неструктурированных. Он сохраняет результаты в HDFS.
Apache Pig Vs MapReduce
Ниже перечислены основные различия между Apache Pig и MapReduce.
Apache Pig | Уменьшение карты |
---|---|
Apache Pig — это язык потоков данных. | MapReduce — это парадигма обработки данных. |
Это язык высокого уровня. | MapReduce низкоуровневый и жесткий. |
Выполнить операцию соединения в Apache Pig довольно просто. | В MapReduce довольно сложно выполнить операцию соединения между наборами данных. |
Любой начинающий программист с базовыми знаниями SQL может удобно работать с Apache Pig. | Экспозиция на Java должна работать с MapReduce. |
Apache Pig использует подход с несколькими запросами, тем самым значительно сокращая длину кодов. | MapReduce потребует почти в 20 раз больше количества строк для выполнения той же задачи. |
Нет необходимости в компиляции. При выполнении каждый оператор Apache Pig внутренне преобразуется в задание MapReduce. | Задания MapReduce имеют длительный процесс компиляции. |
Apache Pig Vs SQL
Ниже перечислены основные различия между Apache Pig и SQL.
В дополнение к вышеуказанным различиям, Apache Pig Latin —
Apache Pig Vs Hive
Apache Pig и Hive используются для создания рабочих мест MapReduce. А в некоторых случаях Hive работает с HDFS аналогично Apache Pig. В следующей таблице мы перечислили несколько важных моментов, которые отличают Apache Pig от Hive.
Приложения Apache Pig
Apache Pig обычно используется исследователями данных для выполнения задач, включающих специальную обработку и быстрое создание прототипов. Apache Pig используется —
Apache Pig — История
В 2006 году Apache Pig был разработан в качестве исследовательского проекта в Yahoo, особенно для создания и выполнения заданий MapReduce для каждого набора данных. В 2007 году Apache Pig был открыт с помощью инкубатора Apache. В 2008 году вышел первый выпуск Apache Pig. В 2010 году Apache Pig получил высшее образование в качестве проекта Apache.
Apache Pig — Архитектура
Для выполнения конкретной задачи Программистам, использующим Pig, программистам необходимо написать сценарий Pig с использованием языка Pig Latin и выполнить их с использованием любого из механизмов выполнения (Grunt Shell, UDFs, Embedded). После выполнения эти сценарии пройдут серию преобразований, применяемых Pig Framework, для получения желаемого результата.
Внутренне Apache Pig преобразует эти сценарии в серию заданий MapReduce, что облегчает работу программиста. Архитектура Apache Pig показана ниже.
Apache Pig Компоненты
Как показано на рисунке, в платформе Apache Pig есть различные компоненты. Давайте посмотрим на основные компоненты.
синтаксический анализатор
Первоначально сценарии Pig обрабатываются парсером. Он проверяет синтаксис скрипта, выполняет проверку типов и другие разные проверки. Результатом парсера будет DAG (направленный ациклический граф), который представляет операторы Pig Latin и логические операторы.
В группе обеспечения доступности баз данных логические операторы сценария представлены в виде узлов, а потоки данных представлены в виде ребер.
оптимизатор
Логический план (DAG) передается логическому оптимизатору, который выполняет логические оптимизации, такие как проекция и опускание.
составитель
Компилятор компилирует оптимизированный логический план в серию заданий MapReduce.
Движок исполнения
Наконец, задания MapReduce передаются в Hadoop в отсортированном порядке. Наконец, эти задания MapReduce выполняются в Hadoop и дают желаемые результаты.
Модель данных Pig Latin
Пример — «Раджа» или «30»
Кортеж
Запись, которая формируется упорядоченным набором полей, называется кортежем, поля могут быть любого типа. Кортеж похож на строку в таблице RDBMS.
Мешок
Сумка — это неупорядоченный набор кортежей. Другими словами, коллекция кортежей (неуникальная) называется сумкой. Каждый кортеж может иметь любое количество полей (гибкая схема). Сумка представлена как <<>. Она похожа на таблицу в RDBMS, но в отличие от таблицы в RDBMS, необязательно, чтобы каждый кортеж содержал одинаковое количество полей или чтобы поля в одной и той же позиции (столбце) имели одинаковый тип.
карта
Карта (или карта данных) представляет собой набор пар ключ-значение. Ключ должен быть типа chararray и должен быть уникальным. Значение может быть любого типа. Он представлен как ‘[]’
Пример — [имя # Раджа, возраст # 30]
Связь
Отношение — это мешок кортежей. Отношения в Pig Latin неупорядочены (нет никакой гарантии, что кортежи будут обработаны в каком-либо конкретном порядке).
Apache Pig — Установка
В этой главе объясняется, как загрузить, установить и настроить Apache Pig в вашей системе.
Предпосылки
Очень важно, чтобы в вашей системе были установлены Hadoop и Java, прежде чем переходить на Apache Pig. Поэтому перед установкой Apache Pig установите Hadoop и Java, выполнив действия, указанные в следующей ссылке:
Скачать Apache Pig
Прежде всего, загрузите последнюю версию Apache Pig со следующего веб-сайта — https://pig.apache.org/
Шаг 1
Откройте домашнюю страницу веб-сайта Apache Pig. Под разделом Новости нажмите на страницу выпуска ссылки, как показано на следующем снимке.
Шаг 2
Шаг 3
Выберите и нажмите любое из этих зеркал, как показано ниже.
Шаг 4
Шаг 5
В этих папках у вас будут исходные и двоичные файлы Apache Pig в различных дистрибутивах. Загрузите tar-файлы исходного кода и двоичные файлы Apache Pig 0.15, pig0.15.0-src.tar.gz и pig-0.15.0.tar.gz.
Установите Apache Pig
После загрузки программного обеспечения Apache Pig установите его в своей среде Linux, следуя инструкциям, приведенным ниже.
Шаг 1
Создайте каталог с именем Pig в том же каталоге, где были установлены каталоги установки Hadoop, Java и другого программного обеспечения. (В нашем уроке мы создали каталог Pig для пользователя с именем Hadoop).
Шаг 2
Извлеките загруженные файлы tar, как показано ниже.
Шаг 3
Переместите содержимое файла pig-0.15.0-src.tar.gz в каталог Pig, созданный ранее, как показано ниже.
Настройте Apache Pig
В файле .bashrc установите следующие переменные —
Папка PIG_HOME в папку установки Apache Pig,
Переменная среды PATH для папки bin и
Переменная среды PIG_CLASSPATH в папку etc (configuration) ваших установок Hadoop (каталог, содержащий файлы core-site.xml, hdfs-site.xml и mapred-site.xml).
Папка PIG_HOME в папку установки Apache Pig,
Переменная среды PATH для папки bin и
Переменная среды PIG_CLASSPATH в папку etc (configuration) ваших установок Hadoop (каталог, содержащий файлы core-site.xml, hdfs-site.xml и mapred-site.xml).
файл pig.properties
Поддерживаются следующие свойства —
Проверка установки
Проверьте установку Apache Pig, введя команду version. Если установка прошла успешно, вы получите версию Apache Pig, как показано ниже.
Apache Pig — Казнь
В предыдущей главе мы объяснили, как установить Apache Pig. В этой главе мы обсудим, как выполнить Apache Pig.
Режимы выполнения Apache Pig
Локальный режим
В этом режиме все файлы устанавливаются и запускаются с локального хоста и локальной файловой системы. Нет необходимости в Hadoop или HDFS. Этот режим обычно используется для целей тестирования.
Режим MapReduce
В режиме MapReduce мы загружаем или обрабатываем данные, которые существуют в файловой системе Hadoop (HDFS), с использованием Apache Pig. В этом режиме всякий раз, когда мы выполняем операторы Pig Latin для обработки данных, в серверной части вызывается задание MapReduce для выполнения определенной операции с данными, существующими в HDFS.
Apache Pig Механизмы исполнения
Сценарии Apache Pig могут быть выполнены тремя способами, а именно: интерактивный режим, пакетный режим и встроенный режим.
Интерактивный режим (оболочка Grunt) — вы можете запустить Apache Pig в интерактивном режиме с помощью оболочки Grunt. В этой оболочке вы можете ввести операторы Pig Latin и получить выходные данные (используя оператор Dump).
Встроенный режим (UDF) — Apache Pig предоставляет возможность определения наших собственных функций (определенных функций F ) в таких языках программирования, как Java, и их использования в нашем скрипте.
Интерактивный режим (оболочка Grunt) — вы можете запустить Apache Pig в интерактивном режиме с помощью оболочки Grunt. В этой оболочке вы можете ввести операторы Pig Latin и получить выходные данные (используя оператор Dump).
Встроенный режим (UDF) — Apache Pig предоставляет возможность определения наших собственных функций (определенных функций F ) в таких языках программирования, как Java, и их использования в нашем скрипте.
Вызов скорлупы
Вы можете вызвать оболочку Grunt в нужном режиме (local / MapReduce), используя параметр -x, как показано ниже.
- что главное в учении иисуса христа
- увеличение гипофиза головного мозга у ребенка