繁体   English   中英

配置单元命令-显示表或任何不起作用的命令

[英]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:


我已经按照以下链接管理了配置。

cloudera Mysql配置单元配置


我想知道如何处理此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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM