2013-11-15 2 views
7

Может ли enyone объяснить, что такое corellation между HCatalog и HBase, пожалуйста?Что такое корреляция между HBase и HCatalog?

Я нашел эти определения:

Apache HCatalog HCatalog является уровнем абстракции метаданных для обращения к данным без использования лежащих в основе имен файлов или форматов. Он изолирует пользователей и сценарии от того, как и где данные физически хранятся.

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

Мы используем CREATE TABLE в Hive, он создает таблицу в HCatalog. Я просто не понимаю. Почему не в реальной базе данных, которая является HBase?

HCatalog - это своего рода репозиторий метаданных для всех хранилищ данных. Означает ли это, что он также хранит информацию о базах данных и таблицах в HBase?

Я буду благодарен за объяснение

С уважением Pawel

+0

Отметьте этот ответ [для корреляции HBase и HCatalog] (https://stackoverflow.com/a/46844329/1592191) – mrsrinivas

ответ

8

При CREATE TABLE в энцефалопатией он регистрирует его в HCatalog. A Таблица в улье может быть таблица HBase, но она также может быть абстракцией выше HDFS файлов и каталогов

Вы можете найти хорошее объяснение HCatalog on HortonWorks' site

+0

Не думаю, что вы можете использовать Hive для запроса HBase ... –

+2

Тогда вы ошибаетесь, поскольку вы можете увидеть https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration –

+0

Вы правы. Я не знал. –

0

Потому что я заметил, что вопрос довольно популярен, I» я решил ответить на него, так как я немного успокоился, так как я спросил его Итак, прежде всего, поскольку Hadoop 2.0 HCatalog и Hive рассматриваются как один продукт. По умолчанию Hive создает таблицы в HCatalog. Это означает, что естественным интерфейсом для HCatalog является Hive. Таким образом, вы можете использовать все DML-модули SQL-92 (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML) и DDL (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL), начиная с create/alter/drop database, до create/alter/drop table, заканчивающихся select, insert into и т. Д. Единственное исключение состоит в том, что вставка работает только как вставка ... в качестве выбора. Для типичной вставки мы должны использовать:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] 

Таблицы могут иметь перегородки, индексы (но с моей experioence это не очень хорошо работает), но это не является реляционной базой данных, так что вы не можете использовать внешние ключи ,

С HBase совсем другое. Это одна из баз данных noSQL (но, как указано в previous post, Hive может быть интерфейсом HBase для SQL-запросов) В нем есть таблицы, упорядоченные по ключевым словам. Позволяет сравнить несколько команд (создать таблицу, вставить в таблицу, выберите из таблицы, падение таблицы

Hive:

create table table_name (
    id    int, 
    value1  string, 
    value2    string 
) 
partitioned by (date string) 

LOAD DATA INPATH 'filepath' ] INTO TABLE table_name [PARTITION (partcol1=val1, partcol2=val2 ...)] 

INSERT INTO table_name as select * from othertable 

SELECT * FROM table_name 

DROP TABLE table_name 

HBase:

hbase> create 'test', 'cf' 

hbase> put 'test', 'row1', 'cf:a', 'value1' 

hbase> get 'test', 'row1' 

hbase> disable 'test' 
hbase> drop 'test' 

Как вы можете видеть, синтаксис полностью разные. Для пользователей SQL работа с HCatalog естественна, те, которые работают с базами данных noSQL, будут чувствовать себя комфортно с HBase.

+2

Вы тоже ответили неправильно (как и ваш комментарий на мой) - HCatalog используется по умолчанию улей, но они не являются одним и тем же продуктом, и HCatalogis также можно использовать из других продуктов, таких как Pig или Impala. –

 Смежные вопросы

  • Нет связанных вопросов^_^