flink run jar throw java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

flink run jar throw java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Alex Wang
Hello everyone, I am a newbie.
I am learning the flink-sql-submit project. From @Jark Wu  :
https://github.com/wuchong/flink-sql-submit

My local environment is:
1. flink1.9.0 standalone
2. kafka_2.11-2.2.0 single

I configured Flink Connectors and Formats jars to $FLINK_HOME/lib .
Reference:
https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/connect.html#connectors

Then I run flink-sql-submit , sh run.sh q1
Throw  java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.

My question is:
I configured mysql-connector-java in the pom.xml file, mvn build jar
include com.mysql.jdbc.Driver.
Why is this error still reported? I put the jar package in $FLINK_HOME/lib
and the problem can be solved.
Do you need to put these jars in $FLINK_HOME/lib when the project relies on
too many jar packages?
If I don't put mysql-connector-java.jar in $FLINK_HOME/lib, how can I solve
this problem?

Can @Jark Wu  give me some advice? Or can someone give me some advice?
Thank you.

1. pom.xml

<dependency>
> <groupId>mysql</groupId>
> <artifactId>mysql-connector-java</artifactId>
> <version>5.1.38</version>
> </dependency>

2. mvn clean; mvn package

$ ll -rth target

>
>  [±master ●]
> total 32312
> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 generated-sources
> drwxr-xr-x  5 alex  staff   160B Oct 30 11:32 classes
> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 maven-archiver
> -rw-r--r--  1 alex  staff   7.2M Oct 30 11:32
> flink-sql-submit-1.0-SNAPSHOT.jar
> -rw-r--r--  1 alex  staff   8.2M Oct 30 11:32 flink-sql-submit.jar
>

3. flink-sql-submit.jar include java.sql.Driver

" zip.vim version v28

> " Browsing zipfile
> /Users/alex/IdeaProjects/alex/flink_learn/flink-sql-submit/target/flink-sql-submit.jar
> " Select a file with cursor and press ENTER
>
> META-INF/MANIFEST.MF
> META-INF/
> q1.sql
> user_behavior.log
> com/
> com/github/
> com/github/wuchong/
> com/github/wuchong/sqlsubmit/
> com/github/wuchong/sqlsubmit/SqlSubmit$1.class
> com/github/wuchong/sqlsubmit/SqlSubmit.class
> com/github/wuchong/sqlsubmit/SourceGenerator.class
> com/github/wuchong/sqlsubmit/cli/
> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommandCall.class
> com/github/wuchong/sqlsubmit/cli/SqlCommandParser.class
> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommand.class
> com/github/wuchong/sqlsubmit/cli/CliOptions.class
> com/github/wuchong/sqlsubmit/cli/CliOptionsParser.class
> META-INF/maven/
> META-INF/maven/com.github.wuchong/
> META-INF/maven/com.github.wuchong/flink-sql-submit/
> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.xml
> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.properties
> META-INF/services/
> META-INF/services/java.sql.Driver
> com/mysql/
> com/mysql/fabric/
> com/mysql/fabric/FabricCommunicationException.class
> com/mysql/fabric/FabricConnection.class
> com/mysql/fabric/FabricStateResponse.class
> com/mysql/fabric/HashShardMapping$ReverseShardIndexSorter.class
> com/mysql/fabric/HashShardMapping.class
> com/mysql/fabric/RangeShardMapping$RangeShardIndexSorter.class
> com/mysql/fabric/RangeShardMapping.class
> com/mysql/fabric/Response.class
> com/mysql/fabric/Server.class
> com/mysql/fabric/ServerGroup.class
> com/mysql/fabric/ServerMode.class
> com/mysql/fabric/ServerRole.class
> etc ...
>



$FLINK_DIR/bin/flink run -d -p 3 target/flink-sql-submit.jar -w
"${PROJECT_DIR}"/src/main/resources/ -f "$1".sql
Eerror:
2019-10-30 10:27:35
java.lang.IllegalArgumentException: JDBC driver class not found.
At
org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:112)
At
org.apache.flink.api.java.io.jdbc.JDBCUpsertSinkFunction.open(JDBCUpsertSinkFunction.java:42)
At
org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)
At
org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)
At
org.apache.flink.streaming.api.operators.StreamSink.open(StreamSink.java:48)
At
org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:532)
At
org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:396)
At org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705)
At org.apache.flink.runtime.taskmanager.Task.run(Task.java:530)
At java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
At java.net.URLClassLoader.findClass(URLClassLoader.java:381)
At java.lang.ClassLoader.loadClass(ClassLoader.java:424)
At sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
At java.lang.ClassLoader.loadClass(ClassLoader.java:357)
At java.lang.Class.forName0(Native Method)
At java.lang.Class.forName(Class.java:264)
At
org.apache.flink.api.java.io.jdbc.AbstractJDBCOutputFormat.establishConnection(AbstractJDBCOutputFormat.java:66)
At
org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:99)
... 9 more


--
Best
Reply | Threaded
Open this post in threaded view
|

Re: flink run jar throw java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Jörn Franke


You can create a fat jar (also called Uber jar) that includes all dependencies in your application jar.

I would avoid to put things in the Flink lib directory as it can make maintenance difficult. Eg deployment is challenging, upgrade of flink, providing it on new nodes etc.


> Am 30.10.2019 um 04:46 schrieb Alex Wang <[hidden email]>:
>
> 
> Hello everyone, I am a newbie.
> I am learning the flink-sql-submit project. From @Jark Wu  :https://github.com/wuchong/flink-sql-submit
>
> My local environment is:
> 1. flink1.9.0 standalone
> 2. kafka_2.11-2.2.0 single
>
> I configured Flink Connectors and Formats jars to $FLINK_HOME/lib .
> Reference: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/connect.html#connectors
>
> Then I run flink-sql-submit , sh run.sh q1
> Throw  java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
>
> My question is:
> I configured mysql-connector-java in the pom.xml file, mvn build jar include com.mysql.jdbc.Driver.
> Why is this error still reported? I put the jar package in $FLINK_HOME/lib and the problem can be solved.
> Do you need to put these jars in $FLINK_HOME/lib when the project relies on too many jar packages?
> If I don't put mysql-connector-java.jar in $FLINK_HOME/lib, how can I solve this problem?
>
> Can @Jark Wu  give me some advice? Or can someone give me some advice? Thank you.
>
> 1. pom.xml
>
>> <dependency>
>> <groupId>mysql</groupId>
>> <artifactId>mysql-connector-java</artifactId>
>> <version>5.1.38</version>
>> </dependency>
> 2. mvn clean; mvn package
>
>> $ ll -rth target                                                                                                                                [±master ●]
>> total 32312
>> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 generated-sources
>> drwxr-xr-x  5 alex  staff   160B Oct 30 11:32 classes
>> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 maven-archiver
>> -rw-r--r--  1 alex  staff   7.2M Oct 30 11:32 flink-sql-submit-1.0-SNAPSHOT.jar
>> -rw-r--r--  1 alex  staff   8.2M Oct 30 11:32 flink-sql-submit.jar
>
> 3. flink-sql-submit.jar include java.sql.Driver  
>
>> " zip.vim version v28
>> " Browsing zipfile /Users/alex/IdeaProjects/alex/flink_learn/flink-sql-submit/target/flink-sql-submit.jar
>> " Select a file with cursor and press ENTER
>>
>> META-INF/MANIFEST.MF
>> META-INF/
>> q1.sql
>> user_behavior.log
>> com/
>> com/github/
>> com/github/wuchong/
>> com/github/wuchong/sqlsubmit/
>> com/github/wuchong/sqlsubmit/SqlSubmit$1.class
>> com/github/wuchong/sqlsubmit/SqlSubmit.class
>> com/github/wuchong/sqlsubmit/SourceGenerator.class
>> com/github/wuchong/sqlsubmit/cli/
>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommandCall.class
>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser.class
>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommand.class
>> com/github/wuchong/sqlsubmit/cli/CliOptions.class
>> com/github/wuchong/sqlsubmit/cli/CliOptionsParser.class
>> META-INF/maven/
>> META-INF/maven/com.github.wuchong/
>> META-INF/maven/com.github.wuchong/flink-sql-submit/
>> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.xml
>> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.properties
>> META-INF/services/
>> META-INF/services/java.sql.Driver
>> com/mysql/
>> com/mysql/fabric/
>> com/mysql/fabric/FabricCommunicationException.class
>> com/mysql/fabric/FabricConnection.class
>> com/mysql/fabric/FabricStateResponse.class
>> com/mysql/fabric/HashShardMapping$ReverseShardIndexSorter.class
>> com/mysql/fabric/HashShardMapping.class
>> com/mysql/fabric/RangeShardMapping$RangeShardIndexSorter.class
>> com/mysql/fabric/RangeShardMapping.class
>> com/mysql/fabric/Response.class
>> com/mysql/fabric/Server.class
>> com/mysql/fabric/ServerGroup.class
>> com/mysql/fabric/ServerMode.class
>> com/mysql/fabric/ServerRole.class
>> etc ...
>
>  
>
> $FLINK_DIR/bin/flink run -d -p 3 target/flink-sql-submit.jar -w "${PROJECT_DIR}"/src/main/resources/ -f "$1".sql  
> Eerror:
> 2019-10-30 10:27:35
> java.lang.IllegalArgumentException: JDBC driver class not found.
> At org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:112)
> At org.apache.flink.api.java.io.jdbc.JDBCUpsertSinkFunction.open(JDBCUpsertSinkFunction.java:42)
> At org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)
> At org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)
> At org.apache.flink.streaming.api.operators.StreamSink.open(StreamSink.java:48)
> At org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:532)
> At org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:396)
> At org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705)
> At org.apache.flink.runtime.taskmanager.Task.run(Task.java:530)
> At java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
> At java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> At java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> At sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
> At java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> At java.lang.Class.forName0(Native Method)
> At java.lang.Class.forName(Class.java:264)
> At org.apache.flink.api.java.io.jdbc.AbstractJDBCOutputFormat.establishConnection(AbstractJDBCOutputFormat.java:66)
> At org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:99)
> ... 9 more
>
>
> --
> Best
Reply | Threaded
Open this post in threaded view
|

Re: flink run jar throw java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

vino yang
Hi Franke,

From the information provided by Alex:

>> mvn build jar include com.mysql.jdbc.Driver.

it seems he has packaged a fat jar?

Best,
Vino

Jörn Franke <[hidden email]> 于2019年10月30日周三 下午2:47写道:

>
>
> You can create a fat jar (also called Uber jar) that includes all
> dependencies in your application jar.
>
> I would avoid to put things in the Flink lib directory as it can make
> maintenance difficult. Eg deployment is challenging, upgrade of flink,
> providing it on new nodes etc.
>
>
> Am 30.10.2019 um 04:46 schrieb Alex Wang <[hidden email]>:
>
> 
> Hello everyone, I am a newbie.
> I am learning the flink-sql-submit project. From @Jark Wu  :
> https://github.com/wuchong/flink-sql-submit
>
> My local environment is:
> 1. flink1.9.0 standalone
> 2. kafka_2.11-2.2.0 single
>
> I configured Flink Connectors and Formats jars to $FLINK_HOME/lib .
> Reference:
> https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/connect.html#connectors
>
> Then I run flink-sql-submit , sh run.sh q1
> Throw  java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
>
> My question is:
> I configured mysql-connector-java in the pom.xml file, mvn build jar
> include com.mysql.jdbc.Driver.
> Why is this error still reported? I put the jar package in $FLINK_HOME/lib
> and the problem can be solved.
> Do you need to put these jars in $FLINK_HOME/lib when the project relies
> on too many jar packages?
> If I don't put mysql-connector-java.jar in $FLINK_HOME/lib, how can I
> solve this problem?
>
> Can @Jark Wu  give me some advice? Or can someone give me some advice?
> Thank you.
>
> 1. pom.xml
>
> <dependency>
>> <groupId>mysql</groupId>
>> <artifactId>mysql-connector-java</artifactId>
>> <version>5.1.38</version>
>> </dependency>
>
> 2. mvn clean; mvn package
>
> $ ll -rth target
>>
>>  [±master ●]
>> total 32312
>> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 generated-sources
>> drwxr-xr-x  5 alex  staff   160B Oct 30 11:32 classes
>> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 maven-archiver
>> -rw-r--r--  1 alex  staff   7.2M Oct 30 11:32
>> flink-sql-submit-1.0-SNAPSHOT.jar
>> -rw-r--r--  1 alex  staff   8.2M Oct 30 11:32 flink-sql-submit.jar
>>
>
> 3. flink-sql-submit.jar include java.sql.Driver
>
> " zip.vim version v28
>> " Browsing zipfile
>> /Users/alex/IdeaProjects/alex/flink_learn/flink-sql-submit/target/flink-sql-submit.jar
>> " Select a file with cursor and press ENTER
>>
>> META-INF/MANIFEST.MF
>> META-INF/
>> q1.sql
>> user_behavior.log
>> com/
>> com/github/
>> com/github/wuchong/
>> com/github/wuchong/sqlsubmit/
>> com/github/wuchong/sqlsubmit/SqlSubmit$1.class
>> com/github/wuchong/sqlsubmit/SqlSubmit.class
>> com/github/wuchong/sqlsubmit/SourceGenerator.class
>> com/github/wuchong/sqlsubmit/cli/
>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommandCall.class
>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser.class
>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommand.class
>> com/github/wuchong/sqlsubmit/cli/CliOptions.class
>> com/github/wuchong/sqlsubmit/cli/CliOptionsParser.class
>> META-INF/maven/
>> META-INF/maven/com.github.wuchong/
>> META-INF/maven/com.github.wuchong/flink-sql-submit/
>> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.xml
>> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.properties
>> META-INF/services/
>> META-INF/services/java.sql.Driver
>> com/mysql/
>> com/mysql/fabric/
>> com/mysql/fabric/FabricCommunicationException.class
>> com/mysql/fabric/FabricConnection.class
>> com/mysql/fabric/FabricStateResponse.class
>> com/mysql/fabric/HashShardMapping$ReverseShardIndexSorter.class
>> com/mysql/fabric/HashShardMapping.class
>> com/mysql/fabric/RangeShardMapping$RangeShardIndexSorter.class
>> com/mysql/fabric/RangeShardMapping.class
>> com/mysql/fabric/Response.class
>> com/mysql/fabric/Server.class
>> com/mysql/fabric/ServerGroup.class
>> com/mysql/fabric/ServerMode.class
>> com/mysql/fabric/ServerRole.class
>> etc ...
>>
>
>
>
> $FLINK_DIR/bin/flink run -d -p 3 target/flink-sql-submit.jar -w
> "${PROJECT_DIR}"/src/main/resources/ -f "$1".sql
> Eerror:
> 2019-10-30 10:27:35
> java.lang.IllegalArgumentException: JDBC driver class not found.
> At
> org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:112)
> At
> org.apache.flink.api.java.io.jdbc.JDBCUpsertSinkFunction.open(JDBCUpsertSinkFunction.java:42)
> At
> org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)
> At
> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)
> At
> org.apache.flink.streaming.api.operators.StreamSink.open(StreamSink.java:48)
> At
> org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:532)
> At
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:396)
> At org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705)
> At org.apache.flink.runtime.taskmanager.Task.run(Task.java:530)
> At java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
> At java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> At java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> At sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
> At java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> At java.lang.Class.forName0(Native Method)
> At java.lang.Class.forName(Class.java:264)
> At
> org.apache.flink.api.java.io.jdbc.AbstractJDBCOutputFormat.establishConnection(AbstractJDBCOutputFormat.java:66)
> At
> org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:99)
> ... 9 more
>
>
> --
> Best
>
>
Reply | Threaded
Open this post in threaded view
|

Re: flink run jar throw java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Alex Wang
Hello Yang, Frank
Thank you for your reply.

Frank I have created a fat jar called flink-sql-submit.jar , the file size
is 8.2M .

You can create a fat jar (also called Uber jar) that includes all
> dependencies in your application jar.
>
> I would avoid to put things in the Flink lib directory as it can make
> maintenance difficult. Eg deployment is challenging, upgrade of flink,
> providing it on new nodes etc.
>

I am in favor of your point of view, I want to maintain the project's
dependencies, rather than put it in the Flink lib directory.
I will continue to solve this problem. I will give you feedback if I have
an answer.

Thanks again, Yang and Frank


vino yang <[hidden email]> 于2019年10月30日周三 下午4:05写道:

> Hi Franke,
>
> From the information provided by Alex:
>
> >> mvn build jar include com.mysql.jdbc.Driver.
>
> it seems he has packaged a fat jar?
>
> Best,
> Vino
>
> Jörn Franke <[hidden email]> 于2019年10月30日周三 下午2:47写道:
>
>>
>>
>> You can create a fat jar (also called Uber jar) that includes all
>> dependencies in your application jar.
>>
>> I would avoid to put things in the Flink lib directory as it can make
>> maintenance difficult. Eg deployment is challenging, upgrade of flink,
>> providing it on new nodes etc.
>>
>>
>> Am 30.10.2019 um 04:46 schrieb Alex Wang <[hidden email]>:
>>
>> 
>> Hello everyone, I am a newbie.
>> I am learning the flink-sql-submit project. From @Jark Wu  :
>> https://github.com/wuchong/flink-sql-submit
>>
>> My local environment is:
>> 1. flink1.9.0 standalone
>> 2. kafka_2.11-2.2.0 single
>>
>> I configured Flink Connectors and Formats jars to $FLINK_HOME/lib .
>> Reference:
>> https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/connect.html#connectors
>>
>> Then I run flink-sql-submit , sh run.sh q1
>> Throw  java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
>>
>> My question is:
>> I configured mysql-connector-java in the pom.xml file, mvn build jar
>> include com.mysql.jdbc.Driver.
>> Why is this error still reported? I put the jar package in
>> $FLINK_HOME/lib and the problem can be solved.
>> Do you need to put these jars in $FLINK_HOME/lib when the project relies
>> on too many jar packages?
>> If I don't put mysql-connector-java.jar in $FLINK_HOME/lib, how can I
>> solve this problem?
>>
>> Can @Jark Wu  give me some advice? Or can someone give me some advice?
>> Thank you.
>>
>> 1. pom.xml
>>
>> <dependency>
>>> <groupId>mysql</groupId>
>>> <artifactId>mysql-connector-java</artifactId>
>>> <version>5.1.38</version>
>>> </dependency>
>>
>> 2. mvn clean; mvn package
>>
>> $ ll -rth target
>>>
>>>  [±master ●]
>>> total 32312
>>> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 generated-sources
>>> drwxr-xr-x  5 alex  staff   160B Oct 30 11:32 classes
>>> drwxr-xr-x  3 alex  staff    96B Oct 30 11:32 maven-archiver
>>> -rw-r--r--  1 alex  staff   7.2M Oct 30 11:32
>>> flink-sql-submit-1.0-SNAPSHOT.jar
>>> -rw-r--r--  1 alex  staff   8.2M Oct 30 11:32 flink-sql-submit.jar
>>>
>>
>> 3. flink-sql-submit.jar include java.sql.Driver
>>
>> " zip.vim version v28
>>> " Browsing zipfile
>>> /Users/alex/IdeaProjects/alex/flink_learn/flink-sql-submit/target/flink-sql-submit.jar
>>> " Select a file with cursor and press ENTER
>>>
>>> META-INF/MANIFEST.MF
>>> META-INF/
>>> q1.sql
>>> user_behavior.log
>>> com/
>>> com/github/
>>> com/github/wuchong/
>>> com/github/wuchong/sqlsubmit/
>>> com/github/wuchong/sqlsubmit/SqlSubmit$1.class
>>> com/github/wuchong/sqlsubmit/SqlSubmit.class
>>> com/github/wuchong/sqlsubmit/SourceGenerator.class
>>> com/github/wuchong/sqlsubmit/cli/
>>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommandCall.class
>>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser.class
>>> com/github/wuchong/sqlsubmit/cli/SqlCommandParser$SqlCommand.class
>>> com/github/wuchong/sqlsubmit/cli/CliOptions.class
>>> com/github/wuchong/sqlsubmit/cli/CliOptionsParser.class
>>> META-INF/maven/
>>> META-INF/maven/com.github.wuchong/
>>> META-INF/maven/com.github.wuchong/flink-sql-submit/
>>> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.xml
>>> META-INF/maven/com.github.wuchong/flink-sql-submit/pom.properties
>>> META-INF/services/
>>> META-INF/services/java.sql.Driver
>>> com/mysql/
>>> com/mysql/fabric/
>>> com/mysql/fabric/FabricCommunicationException.class
>>> com/mysql/fabric/FabricConnection.class
>>> com/mysql/fabric/FabricStateResponse.class
>>> com/mysql/fabric/HashShardMapping$ReverseShardIndexSorter.class
>>> com/mysql/fabric/HashShardMapping.class
>>> com/mysql/fabric/RangeShardMapping$RangeShardIndexSorter.class
>>> com/mysql/fabric/RangeShardMapping.class
>>> com/mysql/fabric/Response.class
>>> com/mysql/fabric/Server.class
>>> com/mysql/fabric/ServerGroup.class
>>> com/mysql/fabric/ServerMode.class
>>> com/mysql/fabric/ServerRole.class
>>> etc ...
>>>
>>
>>
>>
>> $FLINK_DIR/bin/flink run -d -p 3 target/flink-sql-submit.jar -w
>> "${PROJECT_DIR}"/src/main/resources/ -f "$1".sql
>> Eerror:
>> 2019-10-30 10:27:35
>> java.lang.IllegalArgumentException: JDBC driver class not found.
>> At
>> org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:112)
>> At
>> org.apache.flink.api.java.io.jdbc.JDBCUpsertSinkFunction.open(JDBCUpsertSinkFunction.java:42)
>> At
>> org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)
>> At
>> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)
>> At
>> org.apache.flink.streaming.api.operators.StreamSink.open(StreamSink.java:48)
>> At
>> org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:532)
>> At
>> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:396)
>> At org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705)
>> At org.apache.flink.runtime.taskmanager.Task.run(Task.java:530)
>> At java.lang.Thread.run(Thread.java:748)
>> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
>> At java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>> At java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>> At sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
>> At java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>> At java.lang.Class.forName0(Native Method)
>> At java.lang.Class.forName(Class.java:264)
>> At
>> org.apache.flink.api.java.io.jdbc.AbstractJDBCOutputFormat.establishConnection(AbstractJDBCOutputFormat.java:66)
>> At
>> org.apache.flink.api.java.io.jdbc.JDBCUpsertOutputFormat.open(JDBCUpsertOutputFormat.java:99)
>> ... 9 more
>>
>>
>> --
>> Best
>>
>>

--
Best