我编写了简单的pig脚本来从hive表中读取数据。
A = LOAD 'default.movie' USING org.apache.hive.hcatalog.pig.HCatLoader();
DUMP A;
当我通过hue pig用户界面运行时它正在工作。但它使用标志useHCatalog
。
当我使用相同的标志使用命令行运行它时,它正在工作
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.movie 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
标志背后的内容。我必须注册才能正常工作?
答案 0 :(得分:0)
您还必须传递配置单元配置,即将猪指向Metastore的文件hive-site.xml
。否则猪不知道在哪里寻找餐桌信息。
此页面可能会有所帮助:https://cwiki.apache.org/confluence/display/Hive/HCatalog+LoadStore