猪脚本使用HCatalog标志?

时间:2015-12-15 13:17:04

标签: hadoop hive apache-pig

我编写了简单的pig脚本来从hive表中读取数据。

A = LOAD 'default.movie' USING org.apache.hive.hcatalog.pig.HCatLoader();
DUMP A;

当我通过hue pig用户界面运行时它正在工作。但它使用标志useHCatalog

enter image description here

当我使用相同的标志使用命令行运行它时,它正在工作

pig -useHCatalog sample.pig

但是如何通过在pig脚本中提供所需的jar文件和配置来运行没有此标志。我试过这个。但是不起作用

REGISTER /usr/lib/hive/lib/*.jar
REGISTER /usr/lib/hive-hcatalog/share/hcatalog/*.jar
REGISTER /usr/lib/hive-hcatalog/share/hcatalog/storage-handlers/hbase/lib/*.jar

当我在没有标志的情况下运行时会抛出错误

  

2015-12-15 05:05:55,379 [main] ERROR org.apache.pig.PigServer -   解析期间的异常:解析期间出错。找不到表格:   default.movi​​e table not found无法解析:无法检索架构   来自loader org.apache.hive.hcatalog.pig.HCatLoader@25bdba7a           在org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:198)           在org.apache.pig.PigServer $ Graph.parseQuery(PigServer.java:1678)           在org.apache.pig.PigServer $ Graph.access $ 000(PigServer.java:1411)           在org.apache.pig.PigServer.parseAndBuild(PigServer.java:344)           在org.apache.pig.PigServer.executeBatch(PigServer.java:369)           在org.apache.pig.PigServer.executeBatch(PigServer.java:355)           在org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:140)           在org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:769)           在org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372)           在org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:198)           在org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:173)           在org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)

我只想知道useHCatalog标志背后的内容。我必须注册才能正常工作?

1 个答案:

答案 0 :(得分:0)

您还必须传递配置单元配置,即将猪指向Metastore的文件hive-site.xml。否则猪不知道在哪里寻找餐桌信息。

此页面可能会有所帮助:https://cwiki.apache.org/confluence/display/Hive/HCatalog+LoadStore