无法通过HCatalog将蜂巢表加载到猪中

时间:2014-03-10 15:52:04

标签: hive apache-pig cloudera hcatalog

我目前正在CentOS 6.5上使用this tutorial配置Cloudera HDP开发图像,安装基础,然后根据需要添加不同的组件。目前,我正在使用上面链接的教程this section安装/测试HCatalog。

我已成功安装该软件包,现在正在使用以下脚本测试与Pig的HCatalog集成:

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

我之前在Hive中创建并填充了'groups'表,然后再运行该命令。当我使用命令pig -useHCatalog test.pig运行脚本时,我得到一个异常而不是预期的输出。下面是stacktrace的初始部分:

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)
...

之前有没有人遇到此错误?任何帮助将非常感激。如果您需要,我很乐意提供更多信息。

1 个答案:

答案 0 :(得分:0)

错误是由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 with Pig。