Каковы преимущества использования либо Hadoop или HBase или улей ?
Насколько я понимаю, HBase избегает использования map-Reduce и имеет ориентированное на столбцы хранилище поверх HDFS. Hive - это sql-подобный интерфейс для Hadoop и HBase .
Я также хотел бы знать, как Hive сравнивается с Pig .
hadoop
hbase
hive
apache-pig
KHALEFA
источник
источник
Ответы:
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 :(.Я недавно внедрил платформу Hive Data в своей фирме и могу говорить с ней от первого лица, так как я был командой из одного человека.
Задача
Варианты архитектуры
Я сравнил следующие параметры:
дизайн
Резюме
HBase похож на карту. Если вы знаете ключ, вы можете мгновенно получить значение. Но если вы хотите узнать, сколько целочисленных ключей в Hbase находится между 1000000 и 2000000, это не подходит только для Hbase .
Если у вас есть данные, которые необходимо объединить, свернуть, проанализировать по строкам, рассмотрите Hive .
Надеюсь, это поможет.
Улей на самом деле качается ... Я знаю, я жил уже 12 месяцев ... Так же как и HBase ...
источник
Hadoop - это инфраструктура, которая позволяет распределенную обработку больших наборов данных по кластерам компьютеров с использованием простых моделей программирования.
В Hadoop есть четыре основных модуля.
Общее Hadoop : Общие утилиты, которые поддерживают другие модули Hadoop.
Распределенная файловая система Hadoop ( HDFS ™ ). Распределенная файловая система, обеспечивающая высокопроизводительный доступ к данным приложения.
Hadoop YARN : платформа для планирования заданий и управления ресурсами кластера.
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.
источник
Учтите, что вы работаете с RDBMS и должны выбрать, что использовать - полное сканирование таблицы или доступ по индексу - но только один из них.
Если вы выбрали полное сканирование таблицы - используйте улей. Если индекс доступа - HBase.
источник
Для сравнения между Hadoop и Cassandra / HBase прочитайте этот пост .
В основном HBase обеспечивает действительно быстрое чтение и запись с масштабируемостью. Как быстро и масштабируемо? Facebook использует его для управления пользовательскими статусами, фотографиями, сообщениями чата и т. Д. HBase настолько быстр, что Facebook иногда разрабатывает стеки для использования HBase в качестве хранилища данных для самого Hive.
Where As Hive больше похож на решение для хранилищ данных. Вы можете использовать синтаксис, аналогичный SQL, для запроса содержимого Hive, что приводит к заданию Map Reduce. Не идеально подходит для быстрых транзакционных систем.
источник
Я работал над обработкой архитектуры Lambda в реальном времени и пакетной загрузкой. Обработка в реальном времени необходима там, где необходимо принимать быстрые решения в случае отправки пожарной тревоги с помощью датчика или обнаружения мошенничества в случае банковских операций. Пакетная обработка необходима для обобщения данных, которые можно подавать в системы BI.
мы использовали экосистемные технологии Hadoop для вышеуказанных приложений.
Обработка в реальном времени
Apache Storm: потоковая обработка данных, приложение Rule
HBase: хранилище данных для обслуживания панели мониторинга в реальном времени
Пакетная обработка Hadoop: сжатие огромного куска данных. 360-градусный обзор или добавление контекста к событиям. Интерфейсы или структуры, такие как Pig, MR, Spark, Hive, Shark, помогают в вычислениях. Этот слой нуждается в планировщике, для которого Oozie является хорошим вариантом.
Слой обработки событий
Apache Kafka был первым слоем, который потреблял события высокой скорости от датчика. Kafka обслуживает аналитические потоки в реальном времени и в пакетном режиме через соединители Linkedin.
источник
Глубокое понимание
Hadoop
Hadoop
это проектApache
фонда с открытым исходным кодом . Это фреймворкJava
, изначально написанный Дугом Каттингом в 2005 году. Он был создан для поддержкиNutch
механизма текстового поиска.Hadoop
использует GoogleMap Reduce
и Google File System Technologies в качестве своей основы.Особенности Hadoop
Hadoop
для высокой пропускной способности, а не низкой задержки. Это пакетная операция, обрабатывающая огромное количество данных; поэтому время отклика не является немедленным.RDBMS
.Версии Hadoop
Доступны две версии
Hadoop
:Hadoop 1.0
Он состоит из двух основных частей:
1. Структура хранения данных
Это файловая система общего назначения, называемая Hadoop Distributed File System (
HDFS
).HDFS
без схемыОн просто хранит файлы данных, и эти файлы данных могут быть в любом формате.
Идея состоит в том, чтобы хранить файлы как можно ближе к их первоначальному виду.
Это, в свою очередь, предоставляет бизнес-единицам и организации столь необходимую гибкость и гибкость, не беспокоясь о том, что она может реализовать.
2. Структура обработки данных
Это простая функциональная модель программирования, изначально популяризированная Google как
MapReduce
.По сути, он использует две функции:
MAP
иREDUCE
для обработки данных.«Mappers» принимает набор пар ключ-значение и генерирует промежуточные данные (это еще один список пар ключ-значение).
Затем «редукторы» воздействуют на этот вход для получения выходных данных.
Эти две функции, по-видимому, работают изолированно друг от друга, что позволяет распределять обработку с высокой степенью параллелизма, отказоустойчивости и масштабируемости.
Ограничения Hadoop 1.0
Первым ограничением было требование
MapReduce
опыта программирования.Он поддерживал только пакетную обработку, которая, хотя и подходит для таких задач, как анализ журналов, крупномасштабные проекты добычи данных, но в значительной степени не подходит для других видов проектов.
Одним из основных ограничений было то, что оно
Hadoop 1.0
было тесно связано в вычислительном отношенииMapReduce
, что означало, что признанные поставщики управления данными остались с двумя мнениями:Либо переписать их функциональность
MapReduce
так, чтобы он мог быть выполнен вHadoop
илиИзвлекать данные из
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
чтобы суммировать большие данные и упрощает запросы и анализ.Улей не
Реляционная база данных
Дизайн для онлайн-обработки транзакций (
OLTP
).Язык для запросов в реальном времени и обновлений на уровне строк.
Особенности Улья
Он хранит схему в базе данных и обрабатывает данные в
HDFS
.Он предназначен для
OLAP
.Он предоставляет
SQL
язык типов для запросов по имениHiveQL
илиHQL
.Это семейный, быстрый, масштабируемый и расширяемый.
Улей Архитектура
Следующие компоненты содержатся в Hive Architecture:
Пользовательский интерфейс :
Hive
этоdata warehouse
инфраструктура, которая может создавать взаимодействие между пользователем иHDFS
. Поддерживаемые пользовательские интерфейсыHive
: веб-интерфейс Hive, командная строка Hive и Hive HD Insight (в Windows Server).MetaStore :
Hive
выбирает соответствующиеdatabase
servers
для хранения схемы илиMetadata
таблиц, баз данных, столбцов в таблице, их типов данных иHDFS
отображений.HiveQL Process Engine :
HiveQL
похожеSQL
на запрос информации о схеме вMetastore
. Это одна из замен традиционного подхода кMapReduce
программе. Вместо того , чтобы писатьMapReduce
вJava
, мы можем написать запрос дляMapReduce
и обработать его.Механизм выполнения : Соединительная часть
HiveQL
процесса иMapReduce
является МеханизмомHive
выполнения. Механизм выполнения обрабатывает запрос и генерирует результаты так же, как иMapReduce results
. Это использует ароматMapReduce
.HDFS или HBase :
Hadoop
распределенная файловая система илиHBase
методы хранения данных для хранения данных в файловой системе.источник
Прежде всего, мы должны понять, что Hadoop был создан как более быстрая альтернатива РСУБД . Обрабатывать большое количество данных с очень высокой скоростью, которая раньше занимала много времени в СУБД.
Теперь нужно знать два термина:
Структурированные данные : это данные, которые мы использовали в традиционных РСУБД и разделены на четко определенные структуры.
Неструктурированные данные . Важно понимать, что около 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
источник
HDFS расшифровывается как распределенная файловая система Hadoop, в которой используется модель вычислительной обработки Map-Reduce.
HBase - это хранилище Key-Value, пригодное для чтения и записи практически в реальном времени.
Hive используется для извлечения данных из HDFS с использованием SQL-подобного синтаксиса. Улей использовать язык HQL.
Свинья является языком потока данных для создания ETL. Это язык сценариев.
источник
Позвольте мне попытаться ответить в нескольких словах.
Hadoop - это экосистема, которая включает в себя все другие инструменты. Таким образом, вы не можете сравнить Hadoop, но вы можете сравнить MapReduce.
Вот мои несколько центов:
источник
Свинья: лучше обрабатывать файлы и очищать данные. Пример: удаление нулевых значений, обработка строк, ненужные значения Hive: для запроса очищенных данных.
источник
1.Мы используем Hadoop для хранения больших данных (данные о структуре, данных о структуре и полуструктуре) в формате файла типа txt, csv.
2. Если мы хотим, чтобы в наших данных были колоночные обновления, тогда мы используем инструмент Hbase
3. В случае Hive мы храним большие данные в структурированном формате, и в дополнение к этому мы предоставляем анализ этих данных.
4.Pig - инструмент, использующий латинский язык Pig для анализа данных в любом формате (структура, полуструктура и неструктура).
источник
Очистка данных в Pig очень проста, подходящим подходом будет очистка данных через Pig, а затем обработка данных в улье и последующая загрузка их в hdfs.
источник
Использование Hive, Hbase и Pig с моим опытом работы в реальном времени в различных проектах.
Улей используется в основном для:
Цель аналитики, где вам нужно провести анализ исторических данных
Создание бизнес-отчетов на основе определенных столбцов
Эффективное управление данными вместе с информацией метаданных
Объединение таблиц в определенных столбцах, которые часто используются с использованием концепции группирования
Эффективное хранение и запросы с использованием концепции разделения
Не полезно для операций на уровне транзакций / строк, таких как обновление, удаление и т. Д.
Свинья в основном используется для:
Частый анализ данных на огромных данных
Генерация агрегированных значений / рассчитывает на огромные данные
Генерация ключевых показателей эффективности на уровне предприятия очень часто
Hbase в основном используется:
Для обработки данных в реальном времени
Для эффективного управления сложной и вложенной схемой
Для запросов в реальном времени и более быстрого результата
Для легкого масштабирования с колоннами
Полезно для операций на уровне транзакций / строк, таких как обновление, удаление и т. Д.
источник
Краткий ответ на этот вопрос -
Hadoop - это платформа, которая облегчает распределенную файловую систему и модель программирования, которая позволяет нам хранить данные огромного размера и обрабатывать данные распределенным способом очень эффективно и с очень меньшим временем обработки по сравнению с традиционными подходами.
(HDFS - Распределенная файловая система Hadoop) (Map Reduce - Модель программирования для распределенной обработки)
Hive - это язык запросов, который позволяет читать / записывать данные из распределенной файловой системы Hadoop очень популярным способом, подобным SQL. Это облегчило жизнь многим людям, не занимающимся программированием, поскольку им больше не нужно писать программу Map-Reduce, за исключением очень сложных сценариев, где Hive не поддерживается.
Hbase - это столбчатая база данных NoSQL. Основным слоем хранения для Hbase снова является HDFS. Наиболее важным вариантом использования этой базы данных является возможность хранить миллионы строк с миллионами столбцов. Функция низкой задержки в Hbase помогает быстрее и произвольному доступу к записи по распределенным данным, является очень важной функцией, которая делает ее полезной для сложных проектов, таких как Recommender Engines. Кроме того, возможность управления версиями на уровне записей позволяет пользователю очень эффективно хранить транзакционные данные (это решает проблему обновления записей, имеющихся у нас с HDFS и Hive).
Надеюсь, что это полезно, чтобы быстро понять вышеуказанные 3 функции.
источник
Я верю, что эта тема не принесла особой чести HBase и Pig в частности. Хотя я считаю, что Hadoop - это выбор распределенной устойчивой файловой системы для реализаций озера больших данных, выбор между HBase и Hive, в частности, хорошо разделен.
Например, во многих сценариях использования есть особые требования к интерфейсам типа SQL или No-SQL. С Phoenix поверх HBase, хотя возможности, подобные SQL, безусловно, достижимы, однако, производительность, сторонние интеграции, обновление панели мониторинга являются болезненным опытом. Тем не менее, это отличный выбор для баз данных, требующих горизонтального масштабирования.
Свинья особенно хороша для нерекурсивных пакетных операций, таких как вычисления или конвейерная обработка ETL (где-то, где она превосходит Spark на удобном расстоянии). Кроме того, это высокоуровневые реализации потоков данных - отличный выбор для пакетных запросов и сценариев. Выбор между Pig и Hive также зависит от необходимости сценариев на стороне клиента или сервера, требуемых форматов файлов и т. Д. Pig поддерживает формат файлов Avro, что неверно в случае Hive. Выбор «процедурного языка потока данных» вместо «декларативного языка потока данных» также является сильным аргументом в пользу выбора между pig и hive.
источник