[英]hive command - Show tables or any command not working
我无法从hive>
shell运行任何查询。 例如,即使是简单的事情,例如
hive> select * from date;
解析完成后产生相同的错误:
从日期“ select * from date”中线程“主”中的异常java.lang.NoSuchMethodError:org.apache.hadoop.hive.ql.parse.ASTNode.setUnknownTokenBoundaries()V在org.apache.hadoop.hive.ql.parse.ParseDriver.parse (ParseDriver.java:214),位于org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166),位于org.apache.hadoop.hive.ql.Driver.compile(Driver.java:389) )上的org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1067)上的org.apache.hadoop.hive.ql.Driver.compile(Driver.java:303)上。位于org.apache.hadoop.hive.ql.Driver.run(Driver.java:1004)的hive.ql.Driver.runInternal(Driver.java:1129),位于org.apache.hadoop.hive.ql.Driver.run( org.org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:247)处的org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:199)处的Driver.java:994) org.apache.hadoop.hive.cli的.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:410)org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:783) .CliDriver。 在org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处运行(CliDriver.java:677)在sun.reflect.NativeMethodAccessorImpl.invoke( org.apache.hadoop.util.RunJar.run上位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)上的NativeMethodAccessorImpl.java:57)在java.lang.reflect.Method.invoke(Method.java:606)上(RunJar.java:221)在org.apache.hadoop.util.RunJar.main(RunJar.java:136)
以下是日志:
15/09/02 08:55:12 [main]:信息hive.metastore:已连接到metastore。 15/09/02 08:55:12 [main]:INFO会话。SessionState:创建的本地目录:/ home / ETRI / hive / tmpdir / ETRI / f128f3e2-998f-4463-aa1b-8649db186945_resources 15/09/02 08: 55:12 [main]:INFO session.SessionState:创建的HDFS目录:/ tmp / hive / ETRI / f128f3e2-998f-4463-aa1b-8649db186945 15/09/02 08:55:12 [main]:INFO session.SessionState :创建的本地目录:/ home / ETRI / hive / tmpdir / ETRI / f128f3e2-998f-4463-aa1b-8649db186945 15/09/02 08:55:13 [main]:INFO会话。SessionState:创建的HDFS目录:/ tmp /hive/ETRI/f128f3e2-998f-4463-aa1b-8649db186945/_tmp_space.db 15/09/02 08:55:13 [main]:INFO会话。SessionState:此时不需要Tez会话。 hive.execution.engine = mr。 15/09/02 08:55:13 [main]:INFO日志。PerfLogger:15/09/02 08:55:13 [main]:INFO日志。PerfLogger:15/09/02 08:55:13 [main ]:INFO ql.Driver:禁用并发模式,未创建锁管理器15/09/02 08:55:13 [main]:INFO log.PerfLogger:15/09/02 08:55:13 [main]: INFO log.PerfLogger:15/09/02 08:55:13 [main]:INFO parse.ParseDriver:解析命令:显示表15/09/02 08:55:13 [main]:INFO parse.ParseDriver:解析完成15/09/02 08:55:13 [main]:INFO log.PerfLogger:
我已经按照以下链接管理了配置。
我想知道如何处理此setUnknownTokenBoundaries()V
方法?
我没有更改ql.parse中的任何方法,因为它们是内部的。
非常感谢。
这不是Hive或mysql连接器的问题。
针对库的一个版本进行编译但针对另一版本运行时,会发生java.lang.NoSuchMethodError。 尝试更新Java版本并在Hadoop上设置环境变量,然后尝试运行Hive。
我认为,所述问题也可能是Hive及其对ANTLR的依赖所引起的更普遍的问题。 就我而言,发生此问题的原因不是因为某些环境变量,而是因为在使用包含Hive及其依赖项的Spark的应用程序的类路径中包括了ANTLR。
ASTNode(Hive的一部分)正在扩展CommonTree(ANTLR的一部分)。 它继承了setUnknownTokenBoundaries
方法,该方法存在于ANTLR的新版本中,例如3.5.x,但在3.1.x中不存在。 整理出ANTLR依赖项可以解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.