Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-18845

class not found exception when i use sql client to try mysql as datasource.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Reopened
    • Not a Priority
    • Resolution: Unresolved
    • 1.11.0
    • None
    • Table SQL / Client
    • None
    • sql-client startup cmd as following:

      ./bin/sql-client.sh embedded

    • Important

    Description

      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

      Attachments

        Activity

          People

            Unassigned Unassigned
            zhouhuiyu HuiyuZhou
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: