seatunnel icon indicating copy to clipboard operation
seatunnel copied to clipboard

[Bug] [flink-druid] No suitable driver found for jdbc:avatica:remote:url

Open smallhibiscus opened this issue 2 years ago • 4 comments

Search before asking

  • [X] I had searched in the issues and found no similar issues.

What happened

When I use flink-druid source, I get the following error Caused by: org.apache.flink.runtime.client.JobExecutionException: Job execution failed. at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:144) at org.apache.flink.client.deployment.ClusterClientJobClientAdapter.lambda$null$6(ClusterClientJobClientAdapter.java:119) ... 19 more Caused by: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.handleFailure(ExecutionFailureHandler.java:118) at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.getFailureHandlingResult(ExecutionFailureHandler.java:80) at org.apache.flink.runtime.scheduler.DefaultScheduler.handleTaskFailure(DefaultScheduler.java:206) at org.apache.flink.runtime.scheduler.DefaultScheduler.maybeHandleTaskFailure(DefaultScheduler.java:197) at org.apache.flink.runtime.scheduler.DefaultScheduler.updateTaskExecutionStateInternal(DefaultScheduler.java:189) at org.apache.flink.runtime.scheduler.SchedulerBase.updateTaskExecutionState(SchedulerBase.java:639) at org.apache.flink.runtime.jobmaster.JobMaster.updateTaskExecutionState(JobMaster.java:396) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcInvocation(AkkaRpcActor.java:306) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:213) at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:77) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleMessage(AkkaRpcActor.java:159) at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:26) at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:21) at scala.PartialFunction.applyOrElse(PartialFunction.scala:123) at scala.PartialFunction.applyOrElse$(PartialFunction.scala:122) at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:21) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:172) at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:172) at akka.actor.Actor.aroundReceive(Actor.scala:517) at akka.actor.Actor.aroundReceive$(Actor.scala:515) at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:225) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:592) at akka.actor.ActorCell.invoke(ActorCell.scala:561) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258) at akka.dispatch.Mailbox.run(Mailbox.scala:225) at akka.dispatch.Mailbox.exec(Mailbox.scala:235) at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) Caused by: java.lang.IllegalArgumentException: openInputFormat() failed.No suitable driver found for jdbc:avatica:remote:url=http://localhost:8082/druid/v2/sql/avatica/ at org.apache.seatunnel.flink.druid.source.DruidInputFormat.openInputFormat(DruidInputFormat.java:83) at org.apache.flink.runtime.operators.DataSourceTask.invoke(DataSourceTask.java:146) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:752) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:569) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: No suitable driver found for jdbc:avatica:remote:url=http://localhost:8082/druid/v2/sql/avatica/ at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:270) at org.apache.seatunnel.flink.druid.source.DruidInputFormat.openInputFormat(DruidInputFormat.java:80) ... 4 more

SeaTunnel Version

2.1.2

SeaTunnel Config

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

######
###### This config file is a demonstration of batch processing in SeaTunnel config
######

env {
  # You can set flink configuration here
  execution.parallelism = 1
}

source {
  # This is a example input plugin **only for test and demonstrate the feature input plugin**
  DruidSource {
  result_table_name = "test"
  jdbc_url = "jdbc:avatica:remote:url=http://localhost:8082/druid/v2/sql/avatica/"
  datasource = "test"
}

  # If you would like to get more information about how to configure seatunnel and see full list of input plugins,
  # please go to https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake
}

transform {
  Sql {
    sql = "select * from test"
  }

  # If you would like to get more information about how to configure seatunnel and see full list of filter plugins,
  # please go to https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql
}

sink {
  # choose stdout output plugin to output data to console
  ConsoleSink {
  }

  # If you would like to get more information about how to configure seatunnel and see full list of output plugins,
  # please go to https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console
}

Running Command

./bin/start-seatunnel-flink.sh --config ./config/flink.batch.conf

Error Exception

Caused by: java.sql.SQLException: No suitable driver found for jdbc:avatica:remote:url=http://localhost:8082/druid/v2/sql/avatica/

Flink or Spark Version

flink 1.11.6

Java or Scala Version

jdk1.8

Screenshots

No response

Are you willing to submit PR?

  • [ ] Yes I am willing to submit a PR!

Code of Conduct

smallhibiscus avatar Jun 21 '22 04:06 smallhibiscus

Please check if avatica-core-${version}.jar is missing.

ashulin avatar Jun 21 '22 10:06 ashulin

Please check if avatica-core-${version}.jar is missing.

yeah,I checked that avatica-core-1.20.0.jar exists. Thank you for your reply.

smallhibiscus avatar Jun 21 '22 14:06 smallhibiscus

Please check if avatica-core-${version}.jar is missing.

yeah,I checked that avatica-core-1.20.0.jar exists. Thank you for your reply.

plz make sure

groupId=org.apache.calcite
artifactId=calcite-avatica
version=xxx

exists in your classpath.

hk-lrzy avatar Jun 22 '22 09:06 hk-lrzy

Please check if avatica-core-${version}.jar is missing.

yeah,I checked that avatica-core-1.20.0.jar exists. Thank you for your reply.

plz make sure

groupId=org.apache.calcite
artifactId=calcite-avatica
version=xxx

exists in your classpath.

I don't find this in maven dependency , can you help me ? my wechatid smallhibiscus

smallhibiscus avatar Jun 23 '22 05:06 smallhibiscus