我無法運行任何來自hive>
shell的查詢。例如,即使簡單的東西,如hive命令 - 顯示錶或任何不起作用的指令
hive> select * from date;
解析後產生同樣的錯誤齊全:
select * from date Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.parse.ASTNode.setUnknownTokenBoundaries()V at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:214) at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:389) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:303) at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1067) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1129) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1004) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:994) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:247) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:199) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:410) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:783) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
下面是日誌:
15/09/02 08:55:12 [main]: INFO hive.metastore: Connected to metastore. 15/09/02 08:55:12 [main]: INFO session.SessionState: Created local directory: /home/ETRI/hive/tmpdir/ETRI/f128f3e2-998f-4463-aa1b-8649db186945_resources 15/09/02 08:55:12 [main]: INFO session.SessionState: Created HDFS directory: /tmp/hive/ETRI/f128f3e2-998f-4463-aa1b-8649db186945 15/09/02 08:55:12 [main]: INFO session.SessionState: Created local directory: /home/ETRI/hive/tmpdir/ETRI/f128f3e2-998f-4463-aa1b-8649db186945 15/09/02 08:55:13 [main]: INFO session.SessionState: Created HDFS directory: /tmp/hive/ETRI/f128f3e2-998f-4463-aa1b-8649db186945/_tmp_space.db 15/09/02 08:55:13 [main]: INFO session.SessionState: No Tez session required at this point. hive.execution.engine=mr. 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 ql.Driver: Concurrency mode is disabled, not creating a lock manager 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: Parsing command: show tables 15/09/02 08:55:13 [main]: INFO parse.ParseDriver: Parse Completed 15/09/02 08:55:13 [main]: INFO log.PerfLogger:
我按照以下鏈接管理配置。
我想知道如何處理這種setUnknownTokenBoundaries()V
方法?
我沒有更改ql.parse中的任何方法,因爲它們是內部的。
非常感謝。
非常感謝!是。我使用java 1.7和hive 0.14,可能編譯器無法挑選我在hive 0.14中的代碼。所以更新了Java 1.8並再次使用了配置單元。然後我們開始工作。 – Muthahar
另外我相信這並不意味着蜂巢0.14只能在java 1.8中運行。它也可以在java 1.7中運行。可能是因爲我使用的配置單元已經在其他系統中用於java 1.8。 無論如何,問題現在解決了。非常感謝! – Muthahar