Прежде чем ответить на вопрос, я думаю, вы немного смущены понятиями.
Hadoop: MapReduce + HDFS (распределенная файловая система).
Улей - это всего лишь слой поверх HDFS. Это вовсе не файловая система. Не имеет смысла сравнивать HDFS с Hive.
HBase - это нереляционная база данных, которая может работать поверх Hadoop и предоставляет вам возможности доступа к данным/запросов. HDFS, сам по себе не поддерживает чтение/запись в случайном месте.
Цитируя Hadoop - The Definitive Guide:
HDFS строится вокруг идеи о том, что наиболее эффективная обработка данных шаблон является однократной записи, чтения, неоднократный шаблон. Набор данных обычно генерируется или копируется из источника, а затем различные анализы выполняются в этом наборе данных с течением времени. В каждом анализе будет значительная доля, если не все, набора данных, поэтому время для чтения всего набора данных более важно, чем латентность при чтении первой записи .
Я думаю, что эта статья (Introduction to Hadoop HDFS) будет вам очень полезна.
Чтобы идти немного дальше и пытаясь ответить на ваш вопрос, HBase хранит данные в виде пар ключ/значение, как в базе данных столбцов. Вы можете думать о Hbase как о расширении среды Hadoop, которая позволяет быстро читать/записывать данные. Она хранит данные в HDFS.
Некоторые особенности:
- Низкая задержка доступа к небольшим количествам данных внутри большого набора данных. Вы можете быстро получить доступ к отдельным строкам из таблицы из нескольких таблиц.
- Гибкая модель данных для работы и данные индексируются ключом строки.
- Быстрый просмотр через столы.
4. Масштабирование в терминах записи, а также общий объем данных.
благодарит @siddhartha за ответ, попытается оптимизировать многопоточную резьбовую программу с JAVA API – osum