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


185

Каковы преимущества использования либо Hadoop или HBase или улей ?

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

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


Hadoop : распределенная файловая система Hadoop + модель вычислительной обработки MapReduce. HBase : хранилище Key-Value, подходит для чтения и записи практически в реальном времени. Hive : используется для извлечения данных из HDFS с использованием SQL-подобного синтаксиса. Свинья : это язык потока данных для создания ETL.
dbustosp

Ответы:


348

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

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

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

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

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

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

НТН


Вы забыли поговорить об yarnэкосистеме Hadoop :(.
Кенри Санчес

53

Я недавно внедрил платформу 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 ...


1
HBase - это база данных NonSQL, которая хранит данные в HDFS. Он используется, когда вам нужен случайный доступ в режиме реального времени для чтения / записи ваших больших данных.
Root Loop

28

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

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

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

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

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

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

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

  • Структурированные : структурированные данные имеют надежную схему, и схема будет проверяться во время операции записи и чтения. например, данные в системах RDBMS, таких как Oracle, MySQL Server и т. д.

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

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

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

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

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

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

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

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

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

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

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

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

Взгляните на: Примеры использования Hadoop .

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

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

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

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


Facebook больше не использует HBase с открытым исходным кодом для систем обмена сообщениями в реальном времени. Они заменили его своим внутренним [база данных Myrocks]. ( engineering.fb.com/core-data/… )
ППК

23

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


На самом деле вы можете построить Hive на HBase, чтобы вы могли использовать HQL для полного сканирования hbase, одновременно имея возможность выполнять индексированный запрос на hbase напрямую. Но я сомневаюсь, что это приводит к снижению производительности при полном сканировании.
FrostNovaZzz

HBase - ориентированная на запись система, она не оптимальна при сканировании, хотя данные хранятся отсортированными. Таким образом, хотя сканирование некоторых диапазонов может быть хорошим выбором, полное сканирование будет намного медленнее, чем непосредственно из HDFS
Дэвид Грузман

5

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

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

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


5

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

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

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

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

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

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

Слой обработки событий

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


5

Глубокое понимание

Hadoop

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

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

  1. Он оптимизирован для обработки огромного количества структурированных, полуструктурированных и неструктурированных данных с использованием стандартного аппаратного обеспечения.
  2. Он не имеет ничего общего с архитектурой.
  3. Он реплицирует свои данные на несколько компьютеров, так что если один из них выйдет из строя, данные все равно могут быть обработаны с другого компьютера, на котором хранится его реплика.
  4. Hadoopдля высокой пропускной способности, а не низкой задержки. Это пакетная операция, обрабатывающая огромное количество данных; поэтому время отклика не является немедленным.
  5. Он дополняет онлайн-обработку транзакций и онлайн-аналитическую обработку. Тем не менее, это не замена для RDBMS.
  6. Это не хорошо, когда работа не может быть распараллелена или когда в данных есть зависимости.
  7. Это не хорошо для обработки небольших файлов. Лучше всего работает с огромными файлами данных и наборами данных.

Версии Hadoop

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

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

Он состоит из двух основных частей:

1. Структура хранения данных

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

HDFS без схемы

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. Либо переписать их функциональность MapReduceтак, чтобы он мог быть выполнен в Hadoopили

    2. Извлекать данные из HDFSили обрабатывать их снаружи Hadoop.

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

Hadoop 2.0

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

Тем не менее, новый и индивидуальный структура управления ресурсами называется Y и др ругой R esource N egotiater ( ПРЯЖИ ) был добавлен.

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

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

Это работает, имея Application Master вместо Job Tracker , запуская приложения на ресурсах, управляемых новым Node Manager .

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

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

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

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

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

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

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

Экосистема Hadoop

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

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

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

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

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

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

Узи : Это система рабочих процессов schedularдля управления Hadoopзаданиями Apache .

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

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

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

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

улей

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

Улей не

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

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

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

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

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

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

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

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

Улей Архитектура

Следующие компоненты содержатся в Hive Architecture:

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

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

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

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

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


1

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

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

  1. Структурированные данные : это данные, которые мы использовали в традиционных РСУБД и разделены на четко определенные структуры.

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

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

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

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

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

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


1

Hadoop:

HDFS расшифровывается как распределенная файловая система Hadoop, в которой используется модель вычислительной обработки Map-Reduce.

HBase:

HBase - это хранилище Key-Value, пригодное для чтения и записи практически в реальном времени.

Hive:

Hive используется для извлечения данных из HDFS с использованием SQL-подобного синтаксиса. Улей использовать язык HQL.

свиньи:

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


0

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

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

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

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

0

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


0

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

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

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

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


0

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


0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


0

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

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

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

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

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

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


0

Я верю, что эта тема не принесла особой чести HBase и Pig в частности. Хотя я считаю, что Hadoop - это выбор распределенной устойчивой файловой системы для реализаций озера больших данных, выбор между HBase и Hive, в частности, хорошо разделен.

Например, во многих сценариях использования есть особые требования к интерфейсам типа SQL или No-SQL. С Phoenix поверх HBase, хотя возможности, подобные SQL, безусловно, достижимы, однако, производительность, сторонние интеграции, обновление панели мониторинга являются болезненным опытом. Тем не менее, это отличный выбор для баз данных, требующих горизонтального масштабирования.

Свинья особенно хороша для нерекурсивных пакетных операций, таких как вычисления или конвейерная обработка ETL (где-то, где она превосходит Spark на удобном расстоянии). Кроме того, это высокоуровневые реализации потоков данных - отличный выбор для пакетных запросов и сценариев. Выбор между Pig и Hive также зависит от необходимости сценариев на стороне клиента или сервера, требуемых форматов файлов и т. Д. Pig поддерживает формат файлов Avro, что неверно в случае Hive. Выбор «процедурного языка потока данных» вместо «декларативного языка потока данных» также является сильным аргументом в пользу выбора между pig и hive.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.