Apache Drill - hiveserver2 jdbc 错误
Posted
技术标签:
【中文标题】Apache Drill - hiveserver2 jdbc 错误【英文标题】:Apache Drill - hiveserver2 jdbc error 【发布时间】:2017-11-04 23:28:46 【问题描述】:基本的 hive 查询都会抛出错误!有没有人有任何其他语法可以工作?或者是否有一些错误,钻头留下了一个领先的。在查询的前面?
已将https://repo1.maven.org/maven2/org/apache/hive/hive-jdbc/2.3.0/hive-jdbc-2.3.0-standalone.jar 复制到/usr/lib/apache-drill-1.11.0/jars/3rdparty/hive-jdbc-2.3.0-standalone.jar
添加了这个存储插件:
type": "jdbc",
"driver": "org.apache.hive.jdbc.HiveDriver",
"url": "jdbc:hive2://host:10000/default",
"username": "hive",
"password": "hive1234",
"enabled": true
-
[ec2-user@host ~]$ cd /usr/lib/apache-drill-1.11.0
[ec2-user@host apache-drill-1.11.0]$ ./bin/drill-embedded
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
Nov 01, 2017 7:53:53 AM org.glassfish.jersey.server.ApplicationHandler initialize
INFO: Initiating Jersey application, version Jersey: 2.8 2014-04-29 01:25:26...
apache drill 1.11.0
"this isn't your grandfather's sql"
0: jdbc:drill:zk=local> SELECT count(*) FROM hive2.`contact`;
Error: DATA_READ ERROR: The JDBC storage plugin failed while trying setup the SQL query.
sql SELECT COUNT(*) AS EXPR$0
FROM (SELECT 0 AS $f0
FROM.default.contact) AS t
plugin hive2
Fragment 0:0
[Error Id: 4b293e97-7547-49c5-91da-b9ee2f2184fc on ip-myip.mydomain.orghere.com:31010] (state=,code=0)
0: jdbc:drill:zk=local> ALTER SESSION SET `exec.errors.verbose` = true;
+-------+-------------------------------+
| ok | summary |
+-------+-------------------------------+
| true | exec.errors.verbose updated. |
+-------+-------------------------------+
1 row selected (0.351 seconds)
0: jdbc:drill:zk=local> select * from hive2.contact;
Error: DATA_READ ERROR: The JDBC storage plugin failed while trying setup the SQL query.
sql SELECT *
FROM.default.contact
plugin hive2
Fragment 0:0
[Error Id: fe36b026-e8ff-4354-af6c-6073130680c9 on ip-ip.domain.org.com:31010]
(org.apache.hive.service.cli.HiveSQLException) Error while compiling statement: FAILED: ParseException line 2:4 cannot recognize input near '.' 'default' '.' in join source
org.apache.hive.jdbc.Utils.verifySuccess():267
org.apache.hive.jdbc.Utils.verifySuccessWithInfo():253
org.apache.hive.jdbc.HiveStatement.runAsyncOnServer():313
org.apache.hive.jdbc.HiveStatement.execute():253
org.apache.hive.jdbc.HiveStatement.executeQuery():476
org.apache.commons.dbcp.DelegatingStatement.executeQuery():208
org.apache.commons.dbcp.DelegatingStatement.executeQuery():208
org.apache.drill.exec.store.jdbc.JdbcRecordReader.setup():177
org.apache.drill.exec.physical.impl.ScanBatch.<init>():104
org.apache.drill.exec.physical.impl.ScanBatch.<init>():126
org.apache.drill.exec.store.jdbc.JdbcBatchCreator.getBatch():40
org.apache.drill.exec.store.jdbc.JdbcBatchCreator.getBatch():33
org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch():156
org.apache.drill.exec.physical.impl.ImplCreator.getChildren():179
org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch():136
org.apache.drill.exec.physical.impl.ImplCreator.getChildren():179
org.apache.drill.exec.physical.impl.ImplCreator.getRootExec():109
org.apache.drill.exec.physical.impl.ImplCreator.getExec():87
org.apache.drill.exec.work.fragment.FragmentExecutor.run():207
org.apache.drill.common.SelfCleaningRunnable.run():38
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (org.apache.hive.service.cli.HiveSQLException) Error while compiling statement: FAILED: ParseException line 2:4 cannot recognize input near '.' 'default' '.' in join source
org.apache.hive.service.cli.operation.Operation.toSQLException():380
org.apache.hive.service.cli.operation.SQLOperation.prepare():206
org.apache.hive.service.cli.operation.SQLOperation.runInternal():290
org.apache.hive.service.cli.operation.Operation.run():320
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal():530
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync():517
sun.reflect.GeneratedMethodAccessor86.invoke():-1
sun.reflect.DelegatingMethodAccessorImpl.invoke():43
java.lang.reflect.Method.invoke():498
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():78
org.apache.hive.service.cli.session.HiveSessionProxy.access$000():36
org.apache.hive.service.cli.session.HiveSessionProxy$1.run():63
java.security.AccessController.doPrivileged():-2
javax.security.auth.Subject.doAs():422
org.apache.hadoop.security.UserGroupInformation.doAs():1807
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():59
com.sun.proxy.$Proxy42.executeStatementAsync():-1
org.apache.hive.service.cli.CLIService.executeStatementAsync():310
org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement():530
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1437
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1422
org.apache.thrift.ProcessFunction.process():39
org.apache.thrift.TBaseProcessor.process():39
org.apache.hive.service.auth.TSetIpAddressProcessor.process():56
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run():286
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (java.lang.RuntimeException) org.apache.hadoop.hive.ql.parse.ParseException:line 2:4 cannot recognize input near '.' 'default' '.' in join source
org.apache.hadoop.hive.ql.parse.ParseDriver.parse():207
org.apache.hadoop.hive.ql.parse.ParseUtils.parse():77
org.apache.hadoop.hive.ql.parse.ParseUtils.parse():70
org.apache.hadoop.hive.ql.Driver.compile():468
org.apache.hadoop.hive.ql.Driver.compileInternal():1316
org.apache.hadoop.hive.ql.Driver.compileAndRespond():1294
org.apache.hive.service.cli.operation.SQLOperation.prepare():204
org.apache.hive.service.cli.operation.SQLOperation.runInternal():290
org.apache.hive.service.cli.operation.Operation.run():320
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal():530
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync():517
sun.reflect.GeneratedMethodAccessor86.invoke():-1
sun.reflect.DelegatingMethodAccessorImpl.invoke():43
java.lang.reflect.Method.invoke():498
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():78
org.apache.hive.service.cli.session.HiveSessionProxy.access$000():36
org.apache.hive.service.cli.session.HiveSessionProxy$1.run():63
java.security.AccessController.doPrivileged():-2
javax.security.auth.Subject.doAs():422
org.apache.hadoop.security.UserGroupInformation.doAs():1807
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():59
com.sun.proxy.$Proxy42.executeStatementAsync():-1
org.apache.hive.service.cli.CLIService.executeStatementAsync():310
org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement():530
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1437
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1422
org.apache.thrift.ProcessFunction.process():39
org.apache.thrift.TBaseProcessor.process():39
org.apache.hive.service.auth.TSetIpAddressProcessor.process():56
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run():286
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748 (state=,code=0)
0: jdbc:drill:zk=local> select * from hive2.`default`.contact;
Error: DATA_READ ERROR: The JDBC storage plugin failed while trying setup the SQL query.
sql SELECT *
FROM.default.contact
plugin hive2
Fragment 0:0
[Error Id: 7b7aae92-fabd-49dd-ab84-15ca00189882 on ip-ip.domain.org.com:31010]
(org.apache.hive.service.cli.HiveSQLException) Error while compiling statement: FAILED: ParseException line 2:4 cannot recognize input near '.' 'default' '.' in join source
org.apache.hive.jdbc.Utils.verifySuccess():267
org.apache.hive.jdbc.Utils.verifySuccessWithInfo():253
org.apache.hive.jdbc.HiveStatement.runAsyncOnServer():313
org.apache.hive.jdbc.HiveStatement.execute():253
org.apache.hive.jdbc.HiveStatement.executeQuery():476
org.apache.commons.dbcp.DelegatingStatement.executeQuery():208
org.apache.commons.dbcp.DelegatingStatement.executeQuery():208
org.apache.drill.exec.store.jdbc.JdbcRecordReader.setup():177
org.apache.drill.exec.physical.impl.ScanBatch.<init>():104
org.apache.drill.exec.physical.impl.ScanBatch.<init>():126
org.apache.drill.exec.store.jdbc.JdbcBatchCreator.getBatch():40
org.apache.drill.exec.store.jdbc.JdbcBatchCreator.getBatch():33
org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch():156
org.apache.drill.exec.physical.impl.ImplCreator.getChildren():179
org.apache.drill.exec.physical.impl.ImplCreator.getRecordBatch():136
org.apache.drill.exec.physical.impl.ImplCreator.getChildren():179
org.apache.drill.exec.physical.impl.ImplCreator.getRootExec():109
org.apache.drill.exec.physical.impl.ImplCreator.getExec():87
org.apache.drill.exec.work.fragment.FragmentExecutor.run():207
org.apache.drill.common.SelfCleaningRunnable.run():38
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (org.apache.hive.service.cli.HiveSQLException) Error while compiling statement: FAILED: ParseException line 2:4 cannot recognize input near '.' 'default' '.' in join source
org.apache.hive.service.cli.operation.Operation.toSQLException():380
org.apache.hive.service.cli.operation.SQLOperation.prepare():206
org.apache.hive.service.cli.operation.SQLOperation.runInternal():290
org.apache.hive.service.cli.operation.Operation.run():320
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal():530
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync():517
sun.reflect.GeneratedMethodAccessor86.invoke():-1
sun.reflect.DelegatingMethodAccessorImpl.invoke():43
java.lang.reflect.Method.invoke():498
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():78
org.apache.hive.service.cli.session.HiveSessionProxy.access$000():36
org.apache.hive.service.cli.session.HiveSessionProxy$1.run():63
java.security.AccessController.doPrivileged():-2
javax.security.auth.Subject.doAs():422
org.apache.hadoop.security.UserGroupInformation.doAs():1807
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():59
com.sun.proxy.$Proxy42.executeStatementAsync():-1
org.apache.hive.service.cli.CLIService.executeStatementAsync():310
org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement():530
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1437
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1422
org.apache.thrift.ProcessFunction.process():39
org.apache.thrift.TBaseProcessor.process():39
org.apache.hive.service.auth.TSetIpAddressProcessor.process():56
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run():286
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
Caused By (java.lang.RuntimeException) org.apache.hadoop.hive.ql.parse.ParseException:line 2:4 cannot recognize input near '.' 'default' '.' in join source
org.apache.hadoop.hive.ql.parse.ParseDriver.parse():207
org.apache.hadoop.hive.ql.parse.ParseUtils.parse():77
org.apache.hadoop.hive.ql.parse.ParseUtils.parse():70
org.apache.hadoop.hive.ql.Driver.compile():468
org.apache.hadoop.hive.ql.Driver.compileInternal():1316
org.apache.hadoop.hive.ql.Driver.compileAndRespond():1294
org.apache.hive.service.cli.operation.SQLOperation.prepare():204
org.apache.hive.service.cli.operation.SQLOperation.runInternal():290
org.apache.hive.service.cli.operation.Operation.run():320
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal():530
org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync():517
sun.reflect.GeneratedMethodAccessor86.invoke():-1
sun.reflect.DelegatingMethodAccessorImpl.invoke():43
java.lang.reflect.Method.invoke():498
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():78
org.apache.hive.service.cli.session.HiveSessionProxy.access$000():36
org.apache.hive.service.cli.session.HiveSessionProxy$1.run():63
java.security.AccessController.doPrivileged():-2
javax.security.auth.Subject.doAs():422
org.apache.hadoop.security.UserGroupInformation.doAs():1807
org.apache.hive.service.cli.session.HiveSessionProxy.invoke():59
com.sun.proxy.$Proxy42.executeStatementAsync():-1
org.apache.hive.service.cli.CLIService.executeStatementAsync():310
org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement():530
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1437
org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult():1422
org.apache.thrift.ProcessFunction.process():39
org.apache.thrift.TBaseProcessor.process():39
org.apache.hive.service.auth.TSetIpAddressProcessor.process():56
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run():286
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748 (state=,code=0)
0: jdbc:drill:zk=local>
【问题讨论】:
您可能需要查看更新版本的驱动程序。至少是 2.3.1,它可能包含错误修复。不幸的是,我找不到更新日志。 【参考方案1】:尝试通过 Metastore 连接到 Hive: https://drill.apache.org/docs/hive-storage-plugin/ 或者你有什么理由直接连接到hiveserver2?
【讨论】:
以上是关于Apache Drill - hiveserver2 jdbc 错误的主要内容,如果未能解决你的问题,请参考以下文章