Разница между HDFS и HBase
HDFS (распределенная файловая система Hadoop) HDFS позволяет хранить огромные объемы данных распределенным и избыточным образом, который работает на обычном оборудовании. HBase (база данных Hadoop) - это база данных NoSQL, которая работает поверх кластера Hadoop
Давайте посмотрим на компоненты и архитектуру HDFS и HBase соответственно:
Компоненты HDFS
- NameNode
- DataNode
NameNode: NameNode может рассматриваться как мастер системы. Он поддерживает дерево файловой системы и метаданные для всех файлов и каталогов, присутствующих в системе. Два файла 'Namespace image' и 'edit log' используются для хранения метаданных. Namenode знает все узлы данных, содержащие блоки данных для данного файла, однако он не хранит местоположения блоков постоянно. Эта информация восстанавливается каждый раз из узлов данных при запуске системы.
DataNode: DataNode - это подчиненные устройства, которые находятся на каждой машине в кластере и предоставляют фактическое хранилище. Он отвечает за обслуживание, чтение и запись запросов для клиентов.
Архитектура HDFS: -
Компоненты HBase: -
- Hbase мастер
- Региональный сервер
- Область
- Работник зоопарка
HMaster : Это главный сервер в архитектуре HBase. Это агент мониторинга для мониторинга всего Region Server, а также HMaster является интерфейсом для всех изменений метаданных. Он работает на NameNode.
Серверы регионов: Когда Сервер регионов получает запросы на запись и чтение от клиента, он назначает запрос конкретному региону, в котором находится фактическое семейство столбцов. Однако клиент может напрямую связываться с серверами региона, поэтому нет необходимости в обязательном разрешении HMaster для клиента в отношении связи с серверами региона. Клиенту требуется помощь HMaster, когда требуются операции, связанные с изменениями метаданных и схемы.
Регионы: Регионы являются основными строительными элементами кластера HBase, который состоит из распределения таблиц и состоит из семейств столбцов. Он содержит несколько магазинов, по одному для каждого семейства столбцов. Он состоит в основном из двух компонентов: Memstore и Hfile.
ZooKeeper: В Hbase Zookeeper является централизованным сервером мониторинга, который хранит информацию о конфигурации и обеспечивает распределенную синхронизацию. Распределенная синхронизация - это доступ к распределенным приложениям, работающим в кластере, с обязанностью предоставлять услуги координации между узлами. Если клиент хочет общаться с регионами, клиент сервера должен сначала обратиться к ZooKeeper.
Архитектура HBase: - HBase является частью экосистемы Hadoop.
Глубинная модель: -
Сравнение лицом к лицу между HDFS и HBase (инфографика)
Ниже приводится сравнение 14 лучших между HDFS и HBase
Ключевые различия между HDFS и HBase
Ниже представлены различия между HDFS и HBase:
- HDFS - это распределенная файловая система, которая хорошо подходит для хранения больших файлов. Но HBase, с другой стороны, построен на основе HDFS и обеспечивает быстрый поиск и обновление записей для больших таблиц.
- HDFS основана на файловой системе GFS. Но HBase распространяется - использует HDFS для хранения, столбцов - многомерный (версии) и системы хранения
- HDFS использует HIVE в качестве одного из своих компонентов для языка запросов, который является HIVE Query Language (HQL), но Hbase НЕ является базой данных SQL, что означает: - Нет объединений, нет механизма запросов, нет типов данных, нет (чертовски) SQL, нет схемы и нет необходимости в DBA.
- Поскольку HDFS является распределенным хранилищем, следовательно, у нее нет специального языка, кроме команд, используемых, например, в UNIX, например: - Hadoop dfs -mkdir / foodir
- hadoop dfs -cat /foodir/myfile.txt
- hadoop dfs -rm /foodir/myfile.txt
Но с другой стороны, Hbase имеет свой собственный интерфейс в виде Hbase Shell, например:
- hbase (main): 003: 0> создать 'test', 'cf'
0 ряд (ов) за 1, 2200 секунды
- hbase (main): 004: 0> put 'test', 'row1', 'cf: a', 'value1'
0 строк в 0.0560 секунд
- hbase (main): 005: 0> put 'test', 'row2', 'cf: b', 'value2'
0 ряд (ов) за 0, 0370 секунд
- hbase (main): 006: 0> положить 'test', 'row3', 'cf: c', 'value3'
0 строк в 0, 0450 секунд
- hbase (main): 007: 0> сканирование 'test'
Строка Колонна + клетка
строка1 столбец = cf: a, отметка времени = 1288380727188, значение = значение1
столбец строки 2 = cf: b, метка времени = 1288380738440, значение = значение 2
столбец строки 3 = cf: c, метка времени = 1288380747365, значение = значение 3
3 ряд (ов) за 0, 0590 секунд
Сравнительная таблица HDFS и HBase
Основа для сравнения | HDFS | HBase |
Почему мы нуждаемся в них | Нужно обрабатывать огромные наборы данных на больших кластерах компьютеров | HBase - это распределенное хранилище данных, ориентированное на столбцы, построенное на основе HDFS. |
Узлы выходят из строя каждый день | а) Отказ ожидается, а не исключение б) Количество узлов в кластере не является постоянным | HBase - это проект с открытым исходным кодом Apache, целью которого является предоставление хранилища для распределенных вычислений Hadoop |
Написать шаблон | Добавить только | Произвольная запись, объемная добавка |
Читать шаблон | Полное сканирование таблицы, сканирование таблицы разделов | Случайное чтение, сканирование малого диапазона или сканирование таблицы |
W / R Pattern | HDFS идеально подходит для сценариев использования с однократной записью и многократным чтением | HBase идеально подходит для произвольной записи и чтения данных, хранящихся в HDFS. |
Hive (SQL) Производительность | Относительно очень хорошо | В 4-5 раз медленнее |
Структурированное хранилище | Сделай сам или TSV или файл последовательности | Модель данных семейства разреженных столбцов |
Максимальный размер данных | Обычно можно хранить около 30 ПБ | Примерно около 1 ПБ |
Динамические изменения | HDFS имеет жесткую архитектуру, которая не допускает изменений. Это не облегчает динамическое хранение. | HBase допускает динамические изменения и может использоваться для автономных приложений. |
Распределение данных | Данные хранятся в распределенном порядке по узлам в кластере. Данные делятся на блоки и затем сохраняются на узлах, присутствующих в кластере HDFS. | Таблицы распределяются по кластеру по регионам, а регионы автоматически разделяются и перераспределяются по мере роста ваших данных. |
Хранилище данных | Все данные хранятся в виде небольших файлов, и все файлы имеют типичный размер 64 МБ (что составляет 128 МБ в более новой версии) | Все данные хранятся в виде таблиц, строк и столбцов. |
Моделирование данных | В HDFS мы используем технику Map Reduce, которая делит файлы на пары ключ - значение. | HBase основан на модели Bigtable Google, которая также использует пары ключ-значение |
операции | Имеет высокие задержки операций | Операции с низкой задержкой |
доступность | Доступ к нему в основном осуществляется через MR (Map Reduce) | Доступ к нему можно получить с помощью команд оболочки, клиентского API на Java, REST, Avro или Thrift. |
Вывод - HDFS против HBase
В общем, и HDFS, и HBase имеют свои собственные замечательные технологии. И HDFS, и HBase были созданы для хранения больших данных и облегчения доступа к ним и их вычисления. И HDFS, и HBase идут бок о бок, так как одна HDFS хранит данные, а другая HBase помещает схему в данные о том, как хранить и извлекать ее позже для использования клиентом.
Hbase - это одна из распределенных баз данных NoSql, доступная в Apache Foundation. HBase обеспечивает большую производительность для получения меньшего количества записей, чем Hadoop или Hive. Поиск любого заданного входного значения очень прост, поскольку он поддерживает индексацию, транзакции и обновление.
Мы можем выполнять аналитику в режиме реального времени с использованием Hbase, интегрированного с экосистемой Hadoop. Он имеет автоматический и настраиваемый шардинг для наборов данных или таблиц и предоставляет успокоительные API для выполнения заданий MapReduce.
Рекомендуемая статья
Это было руководство по HDFS против HBase, их значению, сравнению «голова к голове», ключевым различиям, сравнительной таблице и выводам. В этой статье есть все полезные различия между HDFS и HBase. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- HBase vs Cassandra - кто лучше (Инфографика)
- Узнайте 7 лучших различий между Hadoop и HBase
- 12 лучших сравнений Apache Hive и Apache HBase (Инфографика)