Не удается загрузить таблицу Hive в Pig через HCatalog

В настоящее время я настраиваю образ разработчика Cloudera HDP, используя это руководство по CentOS 6.5, установка базы и добавление различных компонентов по мере необходимости. В настоящее время я устанавливаю/тестирую HCatalog, используя этот раздел руководства по ссылке выше.

Я успешно установил пакет и сейчас тестирую интеграцию HCatalog с Pig со следующим скриптом:

A = LOAD 'groups' USING org.apache.hcatalog.pig.HCatLoader(); 
DESCRIBE A;

Ранее я создал и заполнил таблицу «группы» в Hive перед запуском команды. Когда я запускаю скрипт с помощью команды pig -useHCatalog test.pig, я получаю исключение, а не ожидаемый результат. Ниже приведена начальная часть трассировки стека:

Pig Stack Trace
---------------
ERROR 2245: Cannot get schema from loadFunc org.apache.hcatalog.pig.HCatLoader

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing. Cannot get schema from loadFunc org.apache.hcatalog.pig.HCatLoader
    at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1608)
    at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1547)
    at org.apache.pig.PigServer.registerQuery(PigServer.java:518)
    at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:991)
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:412)
...

Кто-нибудь сталкивался с этой ошибкой раньше? Любая помощь приветствуется. Я был бы рад предоставить дополнительную информацию, если вам это нужно.


person David N. Robinson    schedule 10.03.2014    source источник
comment
Вы пытались указать схему?   -  person robthewolf    schedule 12.03.2014
comment
У меня есть, спасибо за предложение. Оказывается, мой сервер HBase Thrift был настроен неправильно. Как только я настроил его и добавил URL-адрес в свой файл hive-site.xml, все заработало.   -  person David N. Robinson    schedule 17.03.2014


Ответы (1)


Ошибка была вызвана неправильной настройкой сервера HBase Thrift. Я установил/настроил Thrift и добавил следующее на свой hive-xml.site с добавлением соответствующей информации о сервере:

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://<!--URL of Your Server-->:9083</value>
    <description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>

Я думал, что приведенный выше фрагмент не требуется, так как я использую Cloudera HDP в псевдораспределенном режиме. Оказывается, он и HBase Thrift необходимы для использования HCatalog с Pig.

person David N. Robinson    schedule 17.03.2014