Когда использовать Hadoop, HBase, Hive и Pig?

В чем преимущества использования Hadoop или HBase или Hive?

По моему мнению, HBase избегает использования map-reduce и имеет хранилище, ориентированное на столбцы, поверх HDFS. Hive представляет собой sql-подобный интерфейс для Hadoop и HBase.

Я также хотел бы знать, как Hive сравнивается с Свинья.

Ответ 1

MapReduce - это просто вычислительная среда. HBase не имеет к этому никакого отношения. Тем не менее, вы можете эффективно вводить или извлекать данные в/из HBase, записывая задания MapReduce. Кроме того, вы можете записывать последовательные программы, используя другие API-интерфейсы HBase, такие как Java, для ввода или извлечения данных. Но мы используем Hadoop, HBase и т.д., Чтобы иметь дело с гигантскими объемами данных, так что это не имеет большого смысла. Использование обычных последовательных программ было бы крайне неэффективным, если ваши данные слишком велики.

Возвращаясь к первой части вашего вопроса, Hadoop - это в основном 2 вещи: Распределенная файловая система (HDFS) + a Рамка вычислений или обработки (MapReduce). Как и все другие FS, HDFS также предоставляет нам хранилище, но с отказоустойчивостью с высокой пропускной способностью и меньшим риском потери данных (из-за репликации). Но, будучи FS, HDFS не имеет случайного доступа для чтения и записи. Здесь HBase входит в картину. Это распределенное, масштабируемое, большое хранилище данных, смоделированное после Google BigTable. Он хранит данные в виде пар ключ/значение.

Прибытие в Улей. Он предоставляет нам данные хранилища объектов поверх существующего кластера Hadoop. Наряду с этим он обеспечивает SQL, как интерфейс, который упрощает вашу работу, если вы исходите из фона SQL. Вы можете создавать таблицы в Hive и хранить там данные. Наряду с этим вы можете даже сопоставить существующие таблицы HBase с Hive и работать с ними.

Хотя Pig - это в основном язык потока данных, который позволяет нам обрабатывать огромные объемы данных очень легко и быстро. Свинья в основном состоит из двух частей: Свинья Интерпретатор и языка PigLatin. Вы пишете Pig script в PigLatin и с помощью Pig-интерпретатора обрабатываете их. Свинья делает нашу жизнь намного проще, иначе писать MapReduce всегда непросто. Фактически, в некоторых случаях это может стать болью.

Я написал статью о кратком сравнении различных инструментов экосистемы Hadoop некоторое время назад. Это не глубокое сравнение, а краткое введение в каждый из этих инструментов, которые могут помочь вам начать работу. (Просто чтобы добавить к моему ответу. Самостоятельное продвижение не предназначено)

Оба запроса Hive и Pig преобразуются в задания MapReduce под капотом.

НТН

Ответ 2

Я недавно внедрил платформу Hive Data в своей фирме и могу говорить с ней от первого лица, так как я был командой из одного человека.

Задача

  1. Чтобы ежедневные файлы веб-журналов собирались с серверов 350+ ежедневно запрашиваемыми через некоторый SQL- подобный язык
  2. Чтобы заменить ежедневные данные агрегации, сгенерированные через MySQL, на Hive
  3. Создание пользовательских отчетов по запросам в Hive

Варианты архитектуры

Я сравнил следующие параметры:

  1. Улей + HDFS
  2. Hive + HBase - запросы были слишком медленными, поэтому я отказался от этой опции

дизайн

  1. Файлы ежедневного журнала были перенесены в HDFS
  2. MR-задания анализировали эти файлы журнала и выходные файлы в HDFS
  3. Создание таблиц Hive с разделами и местоположениями, указывающими на местоположения HDFS
  4. Создайте сценарии запросов Hive (назовите его HQL, если вам нравится как diff из SQL), который, в свою очередь, выполнял задания MR в фоновом режиме и генерировал данные агрегации.
  5. Поместите все эти шаги в рабочий процесс Oozie - запланировано с Daily Oozie Coordinator

Резюме

HBase похож на карту. Если вы знаете ключ, вы можете мгновенно получить значение. Но если вы хотите узнать, сколько целочисленных ключей в Hbase находится между 1000000 и 2000000, это не подходит только для Hbase.

Если у вас есть данные, которые нужно агрегировать, сворачивать, анализировать по строкам, рассмотрите Hive.

Надеюсь, это поможет.

Улей на самом деле очень хорошо звучит... Я знаю, я живу уже 12 месяцев... Как и HBase...

Ответ 3

Hadoop - это структура, которая позволяет распределенную обработку больших наборов данных в кластерах компьютеров с использованием простого программирования модели.

В Hadoop есть четыре основных модуля.

  • Hadoop Common. Общие утилиты, поддерживающие другие модули Hadoop.

  • Распределенная файловая система Hadoop (HDFS ™): распределенная файловая система, обеспечивающая высокопроизводительный доступ к данным приложения.

  • Hadoop YARN: структура планирования заданий и управления ресурсами кластера.

  • Hadoop MapReduce: система на основе YARN для параллельной обработки больших наборов данных.

Прежде чем двигаться дальше, отметьте, что у нас есть три разных типа данных.

  • Структурированный. Структурированные данные имеют сильную схему, и схема будет проверяться во время операции записи и чтения. например Данные в системах РСУБД, таких как Oracle, MySQL Server и т.д.

  • Неструктурированный. Данные не имеют никакой структуры, и это может быть любая форма - журналы веб-сервера, электронная почта, изображения и т.д.

  • Полуструктурированный. Данные не являются строго структурированными, но имеют некоторую структуру. например XML файлы.

В зависимости от типа обрабатываемых данных мы должны выбрать правильную технологию.

Еще несколько проектов, которые являются частью Hadoop:

  • HBase ™: масштабируемая распределенная база данных, которая поддерживает структурированное хранение данных для больших таблиц.

  • Hive ™: инфраструктура хранилища данных, которая обеспечивает сводку данных и специальные запросы.

  • Pig ™: высокоуровневый язык потока данных и среда выполнения для параллельных вычислений.

Сравнение Hive Vs PIG можно найти на этом article, а мой другой пост в этом SE question.

HBASE не заменит Map Reduce. HBase - масштабируемая распределенная база данных, а Уменьшение карты - это модель программирования для распределенной обработки данных. Map Reduce может воздействовать на данные в HBASE при обработке.

Вы можете использовать HIVE/HBASE для структурированных/полуструктурированных данных и обрабатывать их с помощью Hadoop Map Reduce

Вы можете использовать SQOOP для импорта структурированных данных из традиционной базы данных СУБД Oracle, SQL Server и т.д. и обрабатывать их с помощью Hadoop Map Reduce

Вы можете использовать FLUME для обработки неструктурированных данных и обработки с помощью Hadoop Map Reduce

Посмотрите: Случаи использования Hadoop.

Hive следует использовать для аналитического запроса данных, собранных за определенный период времени. например, "Рассчитать тренды", суммировать журналы веб-сайта, но не могут использоваться для запросов в реальном времени.

HBase подходит для запросов больших данных в режиме реального времени. Facebook использует его для обмена сообщениями и в режиме реального времени.

PIG можно использовать для построения потоков данных, запуска запланированных заданий, сжатия больших объемов данных, их суммирования/суммирования и хранения в системах баз данных. Хорошо подходит для ad-hoc-анализа.

Hive может использоваться для анализа данных ad hoc, но он не может поддерживать все неструктурированные форматы данных в отличие от PIG.

Ответ 4

Учтите, что вы работаете с РСУБД и должны выбрать, что использовать - полное сканирование таблицы или доступ к индексу, но только один из них.
Если вы выберите полное сканирование таблицы - используйте куст. Если доступ к индексу - HBase.

Ответ 5

Для сравнения между Hadoop Vs Cassandra/HBase прочтите это сообщение .

В основном HBase позволяет очень быстро читать и записывать с масштабируемостью. Как быстро и масштабируемо? Facebook использует его для управления своими пользовательскими статусами, фотографиями, сообщениями в чате и т.д. HBase настолько быстр, что стеки были разработаны Facebook для использования HBase как хранилище данных для самого Улья.

Где As Hive больше похож на решение Data Warehousing. Вы можете использовать синтаксис, похожий на SQL, для запроса содержимого Hive, что приводит к заданию Map Reduce. Не идеальна для быстрых транзакционных систем.

Ответ 6

Я работал над обработкой Lambda-архитектуры в режиме реального времени и пакетных нагрузок. Обработка реального времени необходима, когда необходимо принимать быстрые решения в случае отправки пожарной тревоги датчиком или обнаружения мошенничества в случае банковских операций. Пакетная обработка необходима для суммирования данных, которые могут быть загружены в системы BI.

мы использовали экосистемные технологии Hadoop для вышеуказанных приложений.

Обработка в режиме реального времени

Apache Storm: обработка потоков данных, приложение Rule

HBase: хранилище данных для обслуживания панели инструментов реального времени

Пакетная обработка Hadoop: Хрустит огромный кусок данных. 360 градусов или добавление контекста к событиям. Интерфейсы или фреймворки, такие как Pig, MR, Spark, Hive, Shark помогают в вычислении. Этот слой нуждается в планировщике, для которого Oozie является хорошим вариантом.

Уровень обработки событий

Apache Kafka был первым слоем, чтобы потреблять события высокой скорости от датчика. Kafka обслуживает поток данных в режиме реального времени и пакетной аналитики через соединители Linkedin.

Ответ 7

Понимание глубины

Hadoop

Hadoop - проект с открытым исходным кодом основания Apache. Это структура, написанная в Java, первоначально разработанная Дугом Реттингем в 2005 году. Она была создана для поддержки распространения для текстовой поисковой системы Nutch. Hadoop использует Google Map Reduce и Google File System Technologies в качестве основы.

Особенности Hadoop

  • Он оптимизирован для обработки массивных массивов структурированных, полуструктурированных и неструктурированных данных с использованием товарного оборудования.
  • Он не имеет ничего общего с архитектурой.
  • Он реплицирует свои данные на несколько компьютеров, так что, если один снижается, данные все равно могут обрабатываться с другого компьютера, на котором хранится его реплика.
  • Hadoop - это высокая пропускная способность, а не низкая латентность. Это пакетная операция, обрабатывающая огромное количество данных; поэтому время отклика не является немедленным.
  • Он дополняет обработку онлайн-транзакций и онлайн-аналитическую обработку. Однако это не замена для RDBMS.
  • Неплохо, когда работа не может быть распараллелирована или когда в данных имеются зависимости.
  • Это не хорошо для обработки небольших файлов. Он лучше всего работает с огромными файлами данных и наборами данных.

Версии Hadoop

Доступны две версии Hadoop:

  • Hadoop 1.0
  • Hadoop 2.0

Hadoop 1.0

Он имеет две основные части:

1. Структура хранилища данных

Это файловая система общего назначения, называемая распределенной файловой системой Hadoop (HDFS).

HDFS не имеет схемы

Он просто хранит файлы данных, и эти файлы данных могут находиться в любом формате.

Идея состоит в том, чтобы хранить файлы как можно ближе к их оригинальной форме.

Это, в свою очередь, предоставляет бизнес-единицам и организации необходимую гибкость и гибкость, не беспокоясь о том, что она может реализовать.

2. Структура обработки данных

Это простая модель функционального программирования, первоначально популяризированная Google как MapReduce.

Он по существу использует две функции: MAP и REDUCE для обработки данных.

"Мапперы" принимают набор пар ключ-значение и генерируют промежуточные данные (это еще один список пар ключ-значение).

Затем "Редукторы" воздействуют на этот вход для получения выходных данных.

Обе функции, по-видимому, работают изолированно друг от друга, тем самым обеспечивая высокую степень распределенной обработки в высокопараллельном, отказоустойчивом и масштабируемом виде.

Ограничения Hadoop 1.0

  • Первым ограничением было требование MapReduce опыта программирования.

  • Он поддерживает только пакетную обработку, которая, хотя подходит для таких задач, как анализ журналов, крупномасштабных проектов интеллектуального анализа данных, но довольно непригоден для других проектов.

  • Одно из основных ограничений заключалось в том, что Hadoop 1.0 было тесно связано с вычислением MapReduce, что означало, что установленные поставщики управления данными, где остались два мнения:

    • Перепишите их функциональность в MapReduce, чтобы она могла быть выполненный в Hadoop или

    • Извлечь данные из HDFS или обработать его вне Hadoop.

Ни один из вариантов не был жизнеспособным, так как это привело к неэффективности процесса, вызванной перемещением данных в кластере Hadoop.

Hadoop 2.0

В Hadoop 2.0, HDFS продолжает оставаться основой хранения данных.

Однако новая и отдельная структура управления ресурсами, называемая Y et A nother R esource N egotiater ( YARN).

Любое приложение, способное делить себя на параллельные задачи, поддерживается YARN.

YARN координирует распределение подзадач представленного приложения, тем самым дополнительно повышая гибкость, масштабируемость и эффективность приложений.

Он работает с Мастером приложений вместо Job Tracker, запуская приложения на ресурсах, управляемые новым Node Менеджером.

ApplicationMaster может запускать любое приложение, а не только MapReduce.

Это означает, что он поддерживает не только пакетную обработку, но и обработку в реальном времени. MapReduce больше не является единственным вариантом обработки данных.

Преимущества Hadoop

Он хранит данные в своем родном. При вводе данных или хранении данных не существует структуры. HDFS меньше схемы. Это только позже, когда данные необходимо обработать, чтобы структура была наложена на необработанные данные.

Он масштабируемый. Hadoop может хранить и распространять очень большие наборы данных на сотнях недорогих серверов, которые работают параллельно.

Он устойчив к сбою. Hadoop - отказоустойчивость. Он усердно реплицирует данные, что означает, что всякий раз, когда данные отправляются на любой node, одни и те же данные также реплицируются на другие узлы в кластере, тем самым гарантируя, что в случае сбоя node всегда будет другая копия данных доступный для использования.

Он гибкий. Одним из ключевых преимуществ Hadoop является то, что он может работать с любыми данными: структурированными, неструктурированными или полуструктурированными. Кроме того, обработка происходит очень быстро в Hadoop из-за парадигмы "код перехода к данным".

Экосистема Hadoop

Ниже приведены компоненты экосистемы Hadoop:

HDFS: Hadoop Распределенная файловая система. Он просто хранит файлы данных как можно ближе к исходной форме.

HBase. Это база данных Hadoop и хорошо сравнивается с RDBMS. Он поддерживает хранение структурированных данных для больших таблиц.

Hive: он позволяет анализировать большие массивы данных с использованием языка, очень похожего на стандартный ANSI SQL, что подразумевает, что любой знакомый с SQL должен иметь доступ к данным в кластере Hadoop.

Свинья. Это простой способ понять язык потока данных. Это помогает при анализе больших наборов данных, который является вполне порядком с Hadoop. Pig сценарии автоматически преобразуются в задания MapReduce с помощью интерпретатора Pig.

ZooKeeper. Это служба координации для распределенных приложений.

Oozie: это рабочая система schedular для управления заданиями Apache Hadoop.

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

Chukwa. Это система сбора данных для управления большой распределенной системой.

Sqoop. Он используется для передачи объемных данных между Hadoop и структурированными хранилищами данных, такими как реляционные базы данных.

Ambari: это веб-инструмент для создания, управления и мониторинга кластеров Hadoop.

Улей

Hive - инструмент инфраструктуры хранилища данных для обработки структурированных данных в Hadoop. Он находится поверх Hadoop, чтобы суммировать большие данные и упрощает поиск и анализ.

Улей не

  • Реляционная база данных

  • Дизайн для обработки онлайн-транзакций (OLTP).

  • Язык для запросов в реальном времени и обновлений на уровне строк.

Особенности улья

  • Он хранит схему в базе данных и обрабатывает данные в HDFS.

  • Он предназначен для OLAP.

  • Он предоставляет язык типа SQL для запроса с именем HiveQL или HQL.

  • Это familier, быстрый, масштабируемый и расширяемый.

Архитектура улья

В архитектуре улья содержатся следующие компоненты:

  • Пользовательский интерфейс: Hive - это инфраструктура data warehouse, которая может создавать взаимодействие между пользователем и HDFS. Пользовательские интерфейсы, поддерживаемые Hive, - это веб-интерфейс Hive Web UI, Hive и Hive HD Insight (в Windows Server).

  • MetaStore: Hive выбирает соответствующий database servers для хранения схемы или Metadata таблиц, баз данных, столбцов в таблице, их типов данных и HDFS отображение.

  • HiveQL Process Engine: HiveQL похож на SQL для запроса информации о схеме на Metastore. Это одна из замен традиционного подхода для программы MapReduce. Вместо записи MapReduce в Java, мы можем написать запрос для MapReduce и обработать его.

  • Механизм Exceution: соединительная часть механизма процесса HiveQL и MapReduce - это механизм выполнения Hive. Механизм выполнения обрабатывает запрос и генерирует результаты так же, как MapReduce results. Он использует аромат MapReduce.

  • HDFS или HBase: Hadoop Распределенная файловая система или HBase - это методы хранения данных для хранения данных в файловой системе.

Ответ 8

Прежде всего, мы должны понять, что Hadoop был создан как более быстрая альтернатива RDBMS. Чтобы обрабатывать большой объем данных с очень высокой скоростью, что раньше занимало много времени в РСУБД.

Теперь нужно знать два термина:

  • Структурированные данные. Это данные, которые мы использовали в традиционной СУБД и разделены на четко определенные структуры.

  • Неструктурированные данные. Это важно понять, около 80% мировых данных неструктурированы или полуструктурированы. Это данные, которые находятся на его исходной форме и не могут обрабатываться с использованием RDMS. Пример: facebook, twitter data. (http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html).

Таким образом, за последние несколько лет генерировалось большое количество данных, и данные были в основном неструктурированными, что породило HADOOP. Он использовался в основном для очень большого объема данных, которые не требуют времени для использования СУБД. У этого было много недостатков, что он не мог использоваться для сравнительно небольших данных в реальном времени, но им удалось удалить свои недостатки в более новой версии.

Прежде чем идти дальше, я хотел бы сказать, что новый инструмент Big Data создается, когда они видят ошибку в предыдущих инструментах. Итак, какой инструмент вы увидите, что был создан, был сделан для преодоления проблемы предыдущих инструментов.

Hadoop можно просто сказать как две вещи: Mapreduce и HDFS. Mapreduce - это место обработки, а HDFS - это база данных, в которой хранятся данные. Эта структура следовала за WORM, т.е. Записывать один раз несколько раз. Итак, как только мы сохранили данные в HDFS, мы не можем вносить изменения. Это привело к созданию HBASE, продукта NOSQL, где мы можем вносить изменения в данные и после его написания.

Но со временем мы увидели, что у Hadoop было много недостатков, и для этого мы создали другую среду над структурой Hadoop. PIG и HIVE являются двумя популярными примерами.

HIVE был создан для людей с фонами SQL. Запросы, написанные аналогично SQL, называются HIVEQL. HIVE был разработан для обработки полностью структурированных данных. Он не используется для устаревших данных.

PIG, с другой стороны, имеет свой собственный язык запросов, т.е. PIG LATIN. Он может использоваться как для структурированных, так и для неструктурированных данных.

Переходя к разнице, как когда использовать HIVE и когда использовать PIG, я не думаю, что кто-либо, кроме архитектора PIG, мог бы сказать. Перейди по ссылке: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html

Ответ 9

Я новичок в Hadoop, в настоящее время я работаю над проектом с Hadoop и Pig Latin. с небольшим опытом, я могу прокомментировать Pig vs Hive.

Вот сравнение:

  • Pig Latin является процедурной, где Hive является декларативным.
  • Pig Latin позволяет разработчикам конвейера решать, где данные контрольных точек в конвейере.
  • Pig Latin позволяет разработчику напрямую выбирать конкретные реализации операторов, а не полагаться на оптимизатор.
  • Pig Latin поддерживает разделение в конвейере.
  • Pig Latin позволяет разработчикам вставлять свой собственный код почти в любом месте в конвейере данных.

Ответ 10

Позвольте мне попытаться ответить несколькими словами.

Hadoop - это экосистема, которая включает в себя все другие инструменты. Таким образом, вы не можете сравнивать Hadoop, но вы можете сравнить MapReduce.

Вот мои несколько центов:

  • Hive: Если ваша потребность очень проста в SQLish, то ваш оператор проблем может обслуживаться SQL, тогда проще всего использовать Hive. Другой случай, когда вы будете использовать куст, - это когда вы хотите, чтобы сервер имел определенную структуру данных.
  • Свинья: Если вам комфортно с Pig Latin, и вам нужно больше конвейеров данных. Кроме того, ваши данные не имеют структуры. В таких случаях вы можете использовать Pig. Честно говоря, нет большой разницы между Hive и Pig относительно случаев использования.
  • MapReduce: Если ваша проблема не может быть решена с помощью SQL прямо, сначала вы должны попытаться создать UDF для Hive и Pig, а затем, если UDF не решит проблему, а затем сделайте это через MapReduce имеет смысл.

Ответ 11

Свинья: лучше обрабатывать файлы и очищать данные пример: удаление нулевых значений, обработка строк, ненужные значения Улей: для запроса на очищенные данные

Ответ 12

1. Мы используем Hadoop для хранения больших данных (т.е. структуры, данных о структуре и полуструктуре) в формате файла формы, например txt, csv.

2.Если нам нужны столбчатые обновления в наших данных, то мы используем инструмент Hbase

3. В случае Hive мы храним большие данные, которые находятся в структурированном формате и в дополнение к этому мы предоставляем анализ этих данных.

4.Pig - это инструмент, который использует язык латинского языка Pig для анализа данных, которые находятся в любом формате (структура, полуструктура и неструктура).

Ответ 13

Очистка данных в Pig очень проста, подходящим подходом будет очистка данных через pig, а затем обработка данных через куст и последующая загрузка их в hdfs.

Ответ 14

Использование Hive, Hbase и Pig с моим опытом работы в реальном времени в различных проектах.

Улей используется в основном для:

  • Цель аналитики, где вам нужно сделать анализ исторических данных

  • Создание бизнес-отчетов на основе определенных столбцов

  • Эффективное управление данными вместе с информацией метаданных

  • Объединение таблиц в определенных столбцах, которые часто используются с использованием концепции группирования

  • Эффективное хранение и запросы с использованием концепции разделения

  • Не полезно для операций на уровне транзакций/строк, таких как обновление, удаление и т.д.

Pig в основном используется для:

  • Частый анализ данных на огромных данных

  • Генерация агрегированных значений/рассчитывает на огромные данные

  • Генерация ключевых показателей эффективности на уровне предприятия очень часто

Hbase в основном используется:

  • Для обработки данных в реальном времени

  • Для эффективного управления сложной и вложенной схемой

  • Для запросов в реальном времени и более быстрого результата

  • Для легкого масштабирования с колоннами

  • Полезно для операций на уровне транзакций/строк, таких как обновление, удаление и т.д.

Ответ 15

Краткий ответ на этот вопрос -

Hadoop - это платформа, которая облегчает распределенную файловую систему и модель программирования, которая позволяет нам хранить данные огромного размера и обрабатывать данные распределенным способом очень эффективно и с очень меньшим временем обработки по сравнению с традиционными подходами.

(HDFS - Распределенная файловая система Hadoop) (Map Reduce - Модель программирования для распределенной обработки)

Hive - это язык запросов, который позволяет читать/записывать данные из распределенной файловой системы Hadoop очень популярным способом, подобным SQL. Это облегчило жизнь многим людям, не занимающимся программированием, поскольку им больше не нужно писать программу Map-Reduce, за исключением очень сложных сценариев, где Hive не поддерживается.

Hbase - это столбчатая база данных NoSQL. В основе хранилища для Hbase снова лежит HDFS. Наиболее важным вариантом использования этой базы данных является возможность хранить миллиард строк с миллионами столбцов. Функция низкой задержки в Hbase помогает быстрее и произвольному доступу к записи по распределенным данным, является очень важной функцией, которая делает ее полезной для сложных проектов, таких как Recommender Engines. Кроме того, возможность управления версиями на уровне записей позволяет пользователю очень эффективно хранить транзакционные данные (это решает проблему обновления записей, имеющихся у нас с HDFS и Hive).

Надеюсь, что это полезно, чтобы быстро понять вышеуказанные 3 функции.