Различие между Свиньей и Hive? Почему оба имеют? [закрытый]

Мое образование - 4 недели в мире Hadoop. Плескавшийся немного в Hive, Pig и Hadoop с помощью Hadoop VM Cloudera. Прочитали газету Google на MapReduce и GFS (ссылка PDF).

Я понимаю это -

  • Латынь Свиньи языка свиньи является сдвигом от (удовлетворяет способу, которым программисты думают), SQL как декларативный стиль программирования и языка запросов Hive тесно напоминает SQL.

  • Свинья сидит сверху Hadoop и в принципе может также сидеть сверху Дриады. Я мог бы быть неправым, но Hive тесно связан с Hadoop.

  • И латинский Свиньи и Hive управляют, чтобы компиляции Отобразили и Уменьшили задания.

Мой вопрос - Что является целью наличия обоих, когда один (говорят, что Свинья), мог служить цели. Это просто, потому что Свинье проповедуют христианство Yahoo! и Hive Facebook?

254
задан Sheena 5 January 2015 в 03:23
поделиться

4 ответа

Я считаю, что настоящий ответ на ваш вопрос состоит в том, что они являются / были независимыми проектами и не было централизованно согласованной цели. Вначале они находились в разных сферах и со временем пересекались по мере расширения обоих проектов.

Перефразировано из книги Hadoop O'Reilly:

Pig: язык потока данных и среда для изучения очень больших наборы данных.

Улей: распределенное хранилище данных

17
ответ дан 23 November 2019 в 02:48
поделиться

Вы можете достичь аналогичных результатов с помощью запросов pig/hive. Основное различие заключается в подходе к пониманию/написанию/созданию запросов.

Pig стремится создать поток данных: небольшие шаги, на каждом из которых вы выполняете определенную обработку
. Hive дает вам SQL-подобный язык для работы с данными, поэтому преобразование из RDBMS намного проще (Pig может быть проще для тех, кто не имел опыта работы с SQL)

Стоит также отметить, что для Hive вы можете использовать хороший интерфейс для работы с данными (Beeswax для HUE или веб-интерфейс Hive), а также метахранилище для информации о ваших данных (схема и т.д.), которое полезно в качестве центральной информации о ваших данных.

Я использую и Hive, и Pig, для разных запросов (я использую тот из них, где я могу написать запрос быстрее/проще, я делаю так в основном специальные запросы) - они могут использовать одни и те же данные в качестве входных. Но в настоящее время я делаю большую часть своей работы через Beeswax.

12
ответ дан 23 November 2019 в 02:48
поделиться

Посмотрите этот пост от Алана Гейтса, архитектора Pig в Yahoo!, который сравнивает, когда лучше использовать SQL, например Hive, а не Pig. Он очень убедительно доказывает полезность процедурного языка, такого как Pig (по сравнению с декларативным SQL), и его полезность для разработчиков потоков данных.

150
ответ дан 23 November 2019 в 02:48
поделиться

Hive был разработан для сообщества, привыкшего к SQL. Его философия заключалась в том, что нам не нужен еще один язык сценариев. Hive поддерживает сценарии преобразования преобразования и преобразования на языке по выбору пользователя (которые могут быть встроены в предложения SQL). Он широко используется в Facebook аналитиками, знакомыми с SQL, а также разработчиками данных, программирующими на Python. От усилий по совместимости SQL в Pig отказались, AFAIK, поэтому разница между двумя проектами очень очевидна.

Поддержка синтаксиса SQL также означает возможность интеграции с существующими инструментами бизнес-аналитики, такими как Microstrategy. У Hive есть драйвер ODBC / JDBC (работа над ним продолжается), который должен позволить это сделать в ближайшем будущем. Он также начинает добавлять поддержку индексов, которые должны обеспечивать поддержку запросов детализации, распространенных в таких средах.

Наконец - это не имеет прямого отношения к вопросу - Hive - это среда для выполнения аналитических запросов. Хотя в основном он используется для запросов к плоским файлам, нет причин, по которым он не может запрашивать другие магазины. В настоящее время Hive можно использовать для запроса данных, хранящихся в Hbase (который представляет собой хранилище ключей и значений, подобное тем, которые находятся во внутренностях большинства СУБД), а проект HadoopDB использовал Hive для запроса уровня федеративной СУБД.

57
ответ дан 23 November 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: