Что такое hcatalog в hadoop?

Я новичок в Hadoop. Я знаю, что HCatalog - это уровень управления таблицами и хранилищами для Hadoop. Но как именно это работает и как его использовать. Пожалуйста, приведите простой пример.

Ответы

Ответ 1

HCatalog поддерживает чтение и запись файлов в любом формате, для которого может быть записан Hive SerDe (сериализатор-десериализатор). По умолчанию HCatalog поддерживает форматы RCFile, CSV, JSON и SequenceFile. Чтобы использовать пользовательский формат, вы должны предоставить InputFormat, OutputFormat и SerDe.

HCкаталог построен на вершине метастатического улья и включает в себя компоненты из Hive DDL. HCatalog предоставляет интерфейсы чтения и записи для Pig и MapReduce и использует интерфейс командной строки Hives для выдачи команд определения данных и метаданных.

Он также представляет интерфейс REST, позволяющий внешним инструментам получать доступ к операциям Hive DDL (Data Definition Language), таким как "создать таблицу" и "описать таблицу".

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


Изменить: Большая часть текста взята из https://cwiki.apache.org/confluence/display/Hive/HCatalog+UsingHCat.

Ответ 2

Вкратце, HCatalog открывает метаданные улья для других инструментов mapreduce. В каждом инструменте mapreduce есть собственное представление о данных HDFS (например, Pig рассматривает данные HDFS как набор файлов, Hive видит их как таблицы). Имея табличную абстракцию, поддерживаемые HCatalog инструменты для преобразования карт не должны заботиться о том, где хранятся данные, в каком формате и в месте хранения (HBase или HDFS).

Мы получаем средство WebHcat для отправки заданий в RESTful способом, если вы настраиваете webhcat вдоль Hcatalog.

Ответ 3

Вот очень простой пример того, как использовать HCATALOG.

У меня есть таблица в улье, TABLE NAME - STUDENT, который хранится в одном из местоположений HDFS:

neethu 90 malini 90 sunitha 98 mrinal 56 ravi 90 joshua 8

Теперь предположим, что я хочу загрузить эту таблицу в свиньи для дальнейшей трансформации данных, В этом случае я могу использовать HCATALOG:

При использовании информации таблицы из метастата улья с помощью Pig добавьте параметр -useHCatalog при вызове свиньи:

pig -useHCatalog

(вы можете экспортировать HCAT_HOME 'HCAT_HOME =/usr/lib/hive-hcatalog/')

Теперь загрузите эту таблицу в свиньи: A = LOAD 'student' USING org.apache.hcatalog.pig.HCatLoader();

Теперь вы загрузили таблицу в свиньи. Чтобы проверить схему, просто используйте DESCRIBE для отношения.

DESCRIBE A

Спасибо

Ответ 4

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

how <code>HCatalog</code> works and where it sits in cluster

Q: как именно он работает?

Как вы упомянули, "HCatalog - это уровень управления таблицей и хранилищем для Hadoop", который дает абстракцию высокого уровня другим фреймворкам, таким как MR, Spark и Pig, путем выполнения операций ввода-вывода на распределенный уровень хранения для таблиц Hive.

HCatalog содержит 3 ключевых элемента

  • SerDe: сериализация и десериализация lib для обработки различных форматов данных.
  • Meta store DB: используется для хранения схемы таблиц Hive.
  • WebHCat/HCatalog REST: слой UI/REST поверх базы данных meta store для веб-клиентов.

Q: как его использовать?

Как только HCкаталог установлен и работает успешно, вы делаете следующее в CLI

usage: hcat { -e "<query>" | -f "<filepath>" } 
   [ -g "<group>" ] [ -p "<perms>" ] 
   [ -D"<name> = <value>" ]

-D <property = value>    use hadoop value for given property
-e <exec>                hcat command given from command line
-f <file>                hcat commands in file
-g <group>               group for the db/table specified in CREATE statement
-h,--help                Print help information
-p <perms>               permissions for the db/table specified in CREATE statement

Пример:

./hcat –e "SELECT * FROM employee;"

Ответ 5

Hcatalog - это управление метаданными файловой системы Hadoop. Доступ к Hcatalog можно получить через webhcat, который использует rest api. Независимо от того, какие таблицы, созданные в hcatalog, можно получить через улей и свинью.