Что такое 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, можно получить через улей и свинью.