You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Jark Wu (Jira)" <ji...@apache.org> on 2020/08/10 02:11:00 UTC

[jira] [Commented] (FLINK-18845) class not found exception when i use sql client to try mysql as datasource.

    [ https://issues.apache.org/jira/browse/FLINK-18845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17174023#comment-17174023 ] 

Jark Wu commented on FLINK-18845:
---------------------------------

JDBC connector is not bundled in Flink distribution, you have to manually download the jar and put it under {{FLINK_HOME/lib}} or using {{--library}} to link the jar. See more the documentation: https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html#dependencies

> class not found exception when i use sql client to try mysql as datasource.
> ---------------------------------------------------------------------------
>
>                 Key: FLINK-18845
>                 URL: https://issues.apache.org/jira/browse/FLINK-18845
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Client
>    Affects Versions: 1.11.0
>         Environment: sql-client startup cmd as following:
> ./bin/sql-client.sh embedded
>            Reporter: HuiyuZhou
>            Priority: Blocker
>         Attachments: flink-root-standalonesession-2-jqdev-l-01897.jqdev.shanghaigm.com.log
>
>
> Create table as following:
> USE CATALOG default_catalog;
> USE default_database;
> DROP TABLE IF EXISTS CarsOfFactory;
> CREATE TABLE CarsOfFactory (
>  TS STRING,
>  MANUFACTURE_PLANT STRING,
>  STAGE STRING,
>  CAR_NO BIGINT,
>  UPDATE_TIME TIMESTAMP,
>  PRIMARY KEY (TS,MANUFACTURE_PLANT,STAGE) NOT ENFORCED
> ) WITH (
>  'connector' = 'jdbc',
>  'url' = 'jdbc:mysql://xxxx',
>  'table-name' = 'CarsOfFactory',
>  'username' = 'xxxx',
>  'password' = 'xxxxx'
> );
>  
> the sql client startup log as following:
> [^flink-root-standalonesession-2-jqdev-l-01897.jqdev.shanghaigm.com.log]
>  
> i also use arthas to check the class of JdbcRowDataInputFormat, it doesn't exsit.
> [arthas@125257]$ getstatic org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat *
> No class found for: org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat
> Affect(row-cnt:0) cost in 29 ms.
>  
>  
> the detail error message in Apache Flink Dashboard as following:
> 2020-08-07 10:54:15
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot load user class: org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat
> ClassLoader info: URL ClassLoader:
> file: '/tmp/blobStore-20e8ab84-2215-4f5f-b5bb-e7672a43fb43/job_aad9c3d36483cff4d20cc2aba399b8c0/blob_p-0b002ebba0e49cbf5ac62789e6b4fb299b5ae235-8fe568bdcd98caf8fb09c58092083ef4' (valid JAR)
> Class not resolvable through given classloader.
>     at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:288)
>     at org.apache.flink.streaming.runtime.tasks.OperatorChain.<init>(OperatorChain.java:126)
>     at org.apache.flink.streaming.runtime.tasks.StreamTask.beforeInvoke(StreamTask.java:453)
>     at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:522)
>     at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721)
>     at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546)
>     at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>     at org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:61)
>     at org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:65)
>     at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:48)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>     at java.lang.Class.forName0(Native Method)
>     at java.lang.Class.forName(Class.java:348)
>     at org.apache.flink.util.InstantiationUtil$ClassLoaderObjectInputStream.resolveClass(InstantiationUtil.java:78)
>     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1868)
>     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
>     at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:576)
>     at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:562)
>     at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:550)
>     at org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:511)
>     at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:276)
>     ... 6 more



--
This message was sent by Atlassian Jira
(v8.3.4#803005)