我目前正在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)
...
之前有没有人遇到此错误?任何帮助将非常感激。如果您需要,我很乐意提供更多信息。
答案 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。