0

我在 3 个节点上安装了 Cassandra 2.0.7 和 hadoop 2.3.0,在 3 个节点之一上安装了 pig 0.13.0,我在 cassandra 中有如下表:

CREATE TABLE sampletb (
  a text,
  b text,
  c text,
  d text,
  e int,
  PRIMARY KEY (a, b, c, d))

我在 grunt 中运行 pig 脚本,如下所示:

rows = LOAD 'cql://db/ sampletb USING CqlStorage();

grouprows= group rows by ($0,$1);

当我运行 group 它给出以下错误:

2015-02-10 08:57:39,196 [main] 错误 org.apache.pig.tools.grunt.Grunt - 错误 2998:未处理的内部错误。org.antlr.runtime.tree.BaseTree.insertChild(ILjava/lang/Object;)V 日志文件中的详细信息:/home/hadoopcluster/pig_1423545778153.log 日志文件的内容是:

猪堆栈跟踪

错误 2998:未处理的内部错误。org.antlr.runtime.tree.BaseTree.insertChild(ILjava/lang/Object;)V

java.lang.NoSuchMethodError: >org.antlr.runtime.tree.BaseTree.insertChild(ILjava/lang/Object;)V 在 org.apache.pig.parser.QueryParser.paren_expr(QueryParser.java:17532) 在 org.apache .pig.parser.QueryParser.cast_expr(QueryParser.java:17005) 在 org.apache.pig.parser.QueryParser.multi_expr(QueryParser.java:15679) 在 org.apache.pig.parser.QueryParser.expr(QueryParser.java :15568) 在 org.apache.pig.parser.QueryParser.join_group_by_clause(QueryParser.java:13663) 在 org.apache.pig.parser 的 org.apache.pig.parser.QueryParser.real_arg(QueryParser.java:14634)。 org.apache.pig.parser.QueryParser.group_item_list(QueryParser.java:8721) org.apache.pig.parser.QueryParser.group_clause(QueryParser.java:8611) 上的 QueryParser.group_item(QueryParser.java:8889) .apache.pig.parser.QueryParser。op_clause(QueryParser.java:7047) at org.apache.pig.parser.QueryParser.general_statement(QueryParser.java:2314) at org.apache.pig.parser.QueryParser.statement(QueryParser.java:1579) at org.apache .pig.parser.QueryParser.query(QueryParser.java:395) 在 org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:236) 在 org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java :179) 在 org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1657) 在 org.apache.pig.PigServer 的 org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1684)。 registerQuery(PigServer.java:600) 在 org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1069) 在 org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java: 501)在 org.apache.pig.tools。grunt.GruntParser.parseStopOnError(GruntParser.java:228) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203) 在 org.apache.pig.tools.grunt.Grunt.run(Grunt. java:66) 在 org.apache.pig.Main.run(Main.java:542) 在 org.apache.pig.Main.main(Main.java:156) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org. apache.hadoop.util.RunJar.main(RunJar.java:212)在 org.apache.pig.Main.run(Main.java:542) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 的 org.apache.pig.Main.main(Main.java:156) 上运行 (Grunt.java:66) (本机方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606 ) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:212)在 org.apache.pig.Main.run(Main.java:542) 在 sun.reflect.NativeMethodAccessorImpl.invoke0 的 org.apache.pig.Main.main(Main.java:156) 上运行 (Grunt.java:66) (本机方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606 ) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:212)org.apache.hadoop.util.RunJar.main(RunJar.java:212) 处的 lang.reflect.Method.invoke(Method.java:606)org.apache.hadoop.util.RunJar.main(RunJar.java:212) 处的 lang.reflect.Method.invoke(Method.java:606)

我在网上搜索了很多,但找不到任何有用的东西,请紧急帮助

4

1 回答 1

0

这看起来像一个阶级冲突。确保使用的 antlr jar 文件的版本与 pig 所需的版本匹配。

于 2015-02-10T12:55:34.243 回答