Дом тенденции Краткое введение в улей Apache и свинью

Краткое введение в улей Apache и свинью

Anonim

Apache Hive - это инфраструктура, которая располагается поверх Hadoop для выполнения специальных запросов к данным в Hadoop. Hive поддерживает HiveQL, который похож на SQL, но не поддерживает полные конструкции SQL.


Hive включает запрос HiveQL в программу Java MapReduce и затем отправляет его в кластер Hadoop. Тот же результат может быть достигнут с использованием HiveQL и Java MapReduce, но использование Java MapReduce потребует написания / отладки большого количества кода по сравнению с HiveQL. Таким образом, HiveQL увеличивает производительность разработчика.


Подводя итог, можно сказать, что Hive через язык HiveQL предоставляет абстракцию более высокого уровня по сравнению с Java MapReduce. Как и в случае любой другой высокоуровневой абстракции, при использовании HiveQL наблюдается небольшое снижение производительности по сравнению с Java MapReduce, но сообщество Hive работает над тем, чтобы сократить этот разрыв для большинства наиболее часто используемых сценариев.


В том же ключе, Pig обеспечивает более высокий уровень абстракции по сравнению с MapReduce. Pig поддерживает конструкции PigLatin, которые преобразуются в программу Java MapReduce и затем передаются в кластер Hadoop.



Хотя HiveQL является декларативным языком, таким как SQL, PigLatin является языком потока данных. Вывод одной конструкции PigLatin может быть отправлен как ввод в другую конструкцию PigLatin и так далее.


Некоторое время назад Cloudera опубликовал статистику о характере рабочей нагрузки в типичном кластере Hadoop, и можно легко заметить, что задания Pig и Hive составляют значительную часть заданий в кластере Hadoop. Из-за более высокой производительности труда разработчиков многие компании выбирают абстрактные тезисы, такие как Pig и Hive. Таким образом, мы можем поспорить, что вокруг Hive и Pig будет много вакансий по сравнению с разработкой MapReduce.



Хотя книга Programming Pig была опубликована в октябре 2011 года, книга Programming Hive была опубликована совсем недавно, в октябре 2012 года. Для тех, кто имеет опыт работы с RDBMS, лучше начать работу с Hive, чем начинать работу с Pig. Также обратите внимание, что язык PigLatin не очень сложен для начала.


Для базового кластера Hadoop прозрачно, передано ли задание Java MapReduce или задание MapReduce через Hive и Pig. Из-за пакетного характера заданий MapReduce задания, представленные через Hive и Pig, также имеют пакетный характер.


Что касается требований к ответам в реальном времени, Hive и Pig не отвечают требованиям из-за ранее упомянутой пакетно-ориентированной природы заданий MapReduce. Cloudera разработала Impala, основанную на Dremel (публикация от Google) для интерактивных специальных запросов поверх Hadoop. Impala поддерживает SQL-подобные запросы и совместима с HiveQL. Поэтому любые приложения, созданные на основе Hive, должны работать с минимальными изменениями в Impala. Основное различие между Hive и Impala заключается в том, что, хотя HiveQL преобразуется в задания Java MapReduce, Impala не преобразует SQL-запрос в задания Java MapReduce.


Вы должны пойти с Свинья или Улей для конкретного требования? Это тема для другого блога.


Переиздано с разрешения Правина Срипати. Оригинальную статью можно найти здесь: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html

Краткое введение в улей Apache и свинью