0

我目前正在使用本教程在 CentOS 6.5 上配置 Cloudera HDP 开发映像,安装基础,然后根据需要添加不同的组件。目前,我正在使用上面链接的教程的这一部分安装/测试 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)
...

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

4

1 回答 1

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 与 Pig 一起使用。

于 2014-03-17T18:57:23.283 回答