gpt4 book ai didi

java - 失败 : ParseException line 1:94 mismatched input 'hdfs' expecting StringLiteral near 'location' in partition location

转载 作者:可可西里 更新时间:2023-11-01 16:38:04 36 4
gpt4 key购买 nike

Java代码:

String cmd0 = "hive  -e \"use "
+ hiveuser
+ ";set hive.exec.compress.output=true;set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;set mapreduce.job.queuename="
+ queue + ";alter table " + " resident_tmp "
+ " add if not exists partition (weekday ='"
+ "weekday=20170807" + "') location " + location + "\"";
ComandUtil.exec(cmd0);

在hadoop集群中执行可以成功,使用java api commandUtil.exec(..)执行则失败。

failure log:
17/12/13 01:18:52 INFO main.Run_WLOD: excute hive sentence :hive -e "use vendorsjgt;set hive.exec.compress.output=true;set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;set mapreduce.job.queuename=ven5;alter table resident_tmp add if not exists partition (weekday ='weekday=20170807') location "hdfs://gzresearch/user/vendorsjgt/zcy/wlod/tmp/resident/weekday=20170807""
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.optimize.mapjoin.mapreduce does not exist
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.server2.custom.authentication.file does not exist
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.heapsize does not exist
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.server2.enable.impersonation does not exist
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.semantic.analyzer.factory.impl does not exist
17/12/13 01:18:55 WARN conf.HiveConf: HiveConf of name hive.auto.convert.sortmerge.join.noconditionaltask does not exist

Logging initialized using configuration in file:/software/servers/apache-hive-0.14.0-bin/conf/hive-log4j.properties
OK
Time taken: 1.654 seconds
MismatchedTokenException(26!=313)
at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:617)
at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
at org.apache.hadoop.hive.ql.parse.HiveParser.partitionLocation(HiveParser.java:11426)
at org.apache.hadoop.hive.ql.parse.HiveParser.alterStatementSuffixAddPartitionsElement(HiveParser.java:10973)
at org.apache.hadoop.hive.ql.parse.HiveParser.alterStatementSuffixAddPartitions(HiveParser.java:10800)
at org.apache.hadoop.hive.ql.parse.HiveParser.alterTableStatementSuffix(HiveParser.java:7983)
at org.apache.hadoop.hive.ql.parse.HiveParser.alterStatement(HiveParser.java:7401)
at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2685)
at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1650)
at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1109)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:202)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:396)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:308)
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1122)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1170)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:213)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:165)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:376)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:311)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:708)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
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)
FAILED: ParseException line 1:94 mismatched input 'hdfs' expecting StringLiteral near 'location' in partition location
Exception in thread "main" java.lang.RuntimeException: org.apache.commons.exec.ExecuteException: Process exited with an error: 64 (Exit value: 64)
at com.cn.cennavi.util.ComandUtil.exec(ComandUtil.java:46)
at cn.com.cennavi.main.Run_WLOD.main(Run_WLOD.java:177)
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)
Caused by: org.apache.commons.exec.ExecuteException: Process exited with an error: 64 (Exit value: 64)
at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:153)
at com.cn.cennavi.util.ComandUtil.exec(ComandUtil.java:43)
... 7 more

命令句:

hive  -e "use vendorsjgt;set hive.exec.compress.output=true;set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;set mapreduce.job.queuename=ven5;alter table  resident_tmp  add if not exists partition (weekday ='weekday=20170807') location "hdfs://gzresearch/user/vendorsjgt/zcy/wlod/tmp/resident/weekday=20170807""

在Hadoop cluster()中执行可以成功,但是在java代码中使用,在ComandUtil.exec(...)中执行失败..

在Hadoop cluster()中执行:

[vendorsjgt@GZA05-104-BigData-164000005 ~]$ hive  -e "use vendorsjgt;set hive.exec.compress.output=true;set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;set mapreduce.job.queuename=ven5;alter table  resident_tmp  add if not exists partition (weekday ='weekday=20170807') location 'hdfs://gzresearch/user/vendorsjgt/zcy/wlod/tmp/resident/weekday=20170807'"
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.optimize.mapjoin.mapreduce does not exist
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.server2.custom.authentication.file does not exist
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.heapsize does not exist
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.server2.enable.impersonation does not exist
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.semantic.analyzer.factory.impl does not exist
17/12/13 00:55:40 WARN conf.HiveConf: HiveConf of name hive.auto.convert.sortmerge.join.noconditionaltask does not exist

Logging initialized using configuration in file:/software/servers/apache-hive-0.14.0-bin/conf/hive-log4j.properties
OK
Time taken: 1.663 seconds
OK
Time taken: 0.26 seconds

我的项目和我的目标只是处理关于 HQL 的问题 .. 并使用 java api apache.commons.exec 来完成它......我尝试了许多现有的解决方案,例如“配置单元创建表查询时的 MismatchedTokenException” .但它没有用。

最佳答案

Execute it in Hadoop cluster can be success

你混淆了你的报价。你在终端中运行了这个

hive -e "some query ... location 'hdfs://location'"

你用 Java 运行这个

hive -e "some query ... location "hdfs://location
^^ Query failed here
  1. Hive CLI 已弃用。使用直线
  2. Beeline 使用 JDBC,您也应该使用它

关于java - 失败 : ParseException line 1:94 mismatched input 'hdfs' expecting StringLiteral near 'location' in partition location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47778602/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com