2017-02-16 25 views
0

Мне нужно навалом писать в систему hadoop, используя JAVA API, эффективным способом. Просто проверьте параметры здесь.Запись в HDFS через многопоточность vs с использованием таких опций, как hbase/hive

Является ли запись HDFS через многопоточность дорогостоящей операции по сравнению с использованием таких параметров, как hbase/hive.

ответ

1

Hive и HBase - это два разных инструмента. Hbase - это база данных, а Hive - механизм запросов. Hbase отличается от улья и хаупа.

Теперь, отвечая на ваш вопрос, вы можете написать в HDfS, используя mapreduce с Java API, и если ваша программа очень эффективна в отношении обрабатываемых данных. Тогда сокращение карты может быть быстрее, чем улей. Основная причина этого заключается в том, что любой запрос, который вы пишете в улье, преобразуется в программу уменьшения карты. Поэтому, в конце концов, это важна эффективность программы mapreduce. Таким образом, если вы можете написать лучшую и эффективную программу, тогда она может быть быстрее, чем запрос на улей.

+0

благодарит @siddhartha за ответ, попытается оптимизировать многопоточную резьбовую программу с JAVA API – osum

-1

Прежде чем ответить на вопрос, я думаю, вы немного смущены понятиями.

Hadoop: MapReduce + HDFS (распределенная файловая система).

Улей - это всего лишь слой поверх HDFS. Это вовсе не файловая система. Не имеет смысла сравнивать HDFS с Hive.

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

Цитируя Hadoop - The Definitive Guide:

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

Я думаю, что эта статья (Introduction to Hadoop HDFS) будет вам очень полезна.

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

Некоторые особенности:

  1. Низкая задержка доступа к небольшим количествам данных внутри большого набора данных. Вы можете быстро получить доступ к отдельным строкам из таблицы из нескольких таблиц.
  2. Гибкая модель данных для работы и данные индексируются ключом строки.
  3. Быстрый просмотр через столы.

4. Масштабирование в терминах записи, а также общий объем данных.