Источник Hadoop MR: HDFS против HBase. Преимущества каждого? - PullRequest
8 голосов
/ 23 сентября 2010

Если я правильно понимаю экосистему Hadoop, я могу запустить свои задания MapReduce, получая данные из HDFS или HBase. Предполагая, что предыдущее предположение верно, почему я выбрал одно из другого? Есть ли преимущество в производительности, надежности, стоимости или простоте использования для использования HBase в качестве источника МР?

Лучшее, что мне удалось найти, - это цитата: «HBase - это приложение Hadoop, которое используется, когда вам требуется произвольный доступ для чтения / записи в реальном времени к очень большим наборам данных». - Том Уайт (2009) Hadoop: полное руководство, 1-е издание

Ответы [ 2 ]

6 голосов
/ 23 сентября 2010

Используя прямую Hadoop Map / Reduce по HDFS, ваши входы и выходы обычно хранятся в виде плоских текстовых файлов или Hadoop SequenceFiles, которые представляют собой просто сериализованные объекты, передаваемые на диск. Эти хранилища данных более или менее неизменны. Это делает Hadoop подходящим для задач пакетной обработки.

HBase - это полноценная база данных (хотя и не реляционная), которая использует HDFS в качестве хранилища. Это означает, что вы можете запускать интерактивные запросы и обновления для вашего набора данных.

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

0 голосов
/ 04 декабря 2016

Некоторые соответствующие ограничения HDFS (которая является близнецом с открытым исходным кодом для файловой системы Google) можно найти в оригинальной файловой системе Google бумаге .

О случаях целевого использования мы читаем:

В-третьих, большинство файлов видоизменяются путем добавления новых данных, а не перезаписи существующих данных.Случайные записи в файле практически отсутствуют.[...]

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

КакВ результате:

[...] мы ослабили модель согласованности GFS, чтобы значительно упростить файловую систему, не обременяя приложения нагрузкой.Мы также ввели атомарную операцию добавления, чтобы несколько клиентов могли одновременно добавлять файлы без дополнительной синхронизации между ними.

Добавление записи приводит к тому, что данные («запись») добавляются атомарно, по крайней мереодин раз даже при наличии одновременных мутаций, [...]

Если я правильно прочитал статью, то несколько копий каждого файла (в HDFSсмысл) не обязательно будет точно таким же.Если клиенты используют только атомарные операции, каждый файл можно рассматривать как объединение записей (каждая из этих операций), но они могут выглядеть дублированными в некоторых репликах, и их порядок может отличаться от реплики к реплике.(Хотя, по-видимому, там также могут быть вставлены некоторые отступы, так что они даже не такие чистые - прочитайте статью.) Пользователь может управлять границами записи, уникальными идентификаторами, контрольными суммами и т. Д.

Итакэто совсем не то же самое, что файловые системы, к которым мы привыкли на наших настольных компьютерах.

Обратите внимание, что HDFS не подходит для многих небольших файлов, потому что:

  1. Каждый из них обычно выделяет блок размером 64 МБ ( источник ).

  2. Его архитектура не подходит для управления огромным количеством файлов names (источник: такой же, как в пункте 1).Существует один мастер, поддерживающий все имена файлов (которые, как мы надеемся, помещаются в его ОЗУ).

...