apache / seatunnel

SeaTunnel is a next-generation super high-performance, distributed, massive data integration tool.
https://seatunnel.apache.org/
Apache License 2.0
7.86k stars 1.77k forks source link

The main method caused an error: Plugin PluginIdentifier #6817

Open yunfeng79 opened 4 months ago

yunfeng79 commented 4 months ago

Search before asking

What happened

linux seatunnel 2.3.5

flink_csp_cksqinv.config.template

org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Plugin PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='Oracle-CDC'} not found. at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:372) at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222) at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:98) at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:843) at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:240) at org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1087) at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1165) at org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:28) at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1165) Caused by: java.lang.RuntimeException: Plugin PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='Oracle-CDC'} not found. at org.apache.seatunnel.plugin.discovery.AbstractPluginDiscovery.createPluginInstance(AbstractPluginDiscovery.java:234) at org.apache.seatunnel.plugin.discovery.AbstractPluginDiscovery.createPluginInstance(AbstractPluginDiscovery.java:174) at org.apache.seatunnel.core.starter.execution.PluginUtil.fallbackCreate(PluginUtil.java:128) at org.apache.seatunnel.core.starter.execution.PluginUtil.createSource(PluginUtil.java:77) at org.apache.seatunnel.core.starter.flink.execution.SourceExecuteProcessor.initializePlugins(SourceExecuteProcessor.java:118) at org.apache.seatunnel.core.starter.flink.execution.FlinkAbstractPluginExecuteProcessor.(FlinkAbstractPluginExecuteProcessor.java:76) at org.apache.seatunnel.core.starter.flink.execution.SourceExecuteProcessor.(SourceExecuteProcessor.java:61) at org.apache.seatunnel.core.starter.flink.execution.FlinkExecution.(FlinkExecution.java:91) at org.apache.seatunnel.core.starter.flink.command.FlinkTaskExecuteCommand.execute(FlinkTaskExecuteCommand.java:59) at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40) at org.apache.seatunnel.core.starter.flink.SeaTunnelFlink.main(SeaTunnelFlink.java:34) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:355)

SeaTunnel Version

seatunnel 2.3.5

SeaTunnel Config

env {
  # You can set SeaTunnel environment configuration here
  parallelism = 2
  job.mode = "STREAMING"
  checkpoint.interval = 2000
}

source {
    Oracle-CDC {
      base-url = "jdbc:oracle:thin:cdbzuser/ccdbzuser@IP1:TEST"
      source.reader.close.timeout = 120000
      username = "user"
      password = "user"
      database-names = ["TEST"]
      schema-names = ["DB"]
      table-names = ["TEST.DB.a"]
      table-names-config = [
        {
          table = "TEST.DB.a"
          primaryKeys = ["ID"]
        }
      ]
    }
}

sink {
    jdbc {
        url = "jdbc:oracle:thin:@IP2:1521:XEDB"
        driver = "oracle.jdbc.OracleDriver"
        user = use2
        password = use2
        generate_sink_sql = true
        # You need to configure both database and table
        database = DB
        table = "DB.a"
        primary_keys = ["ID"]
        schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
        data_save_mode="APPEND_DATA"
    }
}

Running Command

./bin/start-seatunnel-flink-15-connector-v2.sh --config ./config/flink_csp_cksqinv.config.template

Error Exception

org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Plugin PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='Oracle-CDC'} not found.
        at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:372)
        at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222)
        at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:98)
        at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:843)
        at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:240)
        at org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1087)
        at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1165)
        at org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:28)
        at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1165)
Caused by: java.lang.RuntimeException: Plugin PluginIdentifier{engineType='seatunnel', pluginType='source', pluginName='Oracle-CDC'} not found.
        at org.apache.seatunnel.plugin.discovery.AbstractPluginDiscovery.createPluginInstance(AbstractPluginDiscovery.java:234)
        at org.apache.seatunnel.plugin.discovery.AbstractPluginDiscovery.createPluginInstance(AbstractPluginDiscovery.java:174)
        at org.apache.seatunnel.core.starter.execution.PluginUtil.fallbackCreate(PluginUtil.java:128)
        at org.apache.seatunnel.core.starter.execution.PluginUtil.createSource(PluginUtil.java:77)
        at org.apache.seatunnel.core.starter.flink.execution.SourceExecuteProcessor.initializePlugins(SourceExecuteProcessor.java:118)
        at org.apache.seatunnel.core.starter.flink.execution.FlinkAbstractPluginExecuteProcessor.<init>(FlinkAbstractPluginExecuteProcessor.java:76)
        at org.apache.seatunnel.core.starter.flink.execution.SourceExecuteProcessor.<init>(SourceExecuteProcessor.java:61)
        at org.apache.seatunnel.core.starter.flink.execution.FlinkExecution.<init>(FlinkExecution.java:91)
        at org.apache.seatunnel.core.starter.flink.command.FlinkTaskExecuteCommand.execute(FlinkTaskExecuteCommand.java:59)
        at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
        at org.apache.seatunnel.core.starter.flink.SeaTunnelFlink.main(SeaTunnelFlink.java:34)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:355)
        ... 8 more

Zeta or Flink or Spark Version

flink-1.16.3

Java or Scala Version

java 11.0.21

Screenshots

No response

Are you willing to submit PR?

Code of Conduct

dailai commented 4 months ago

This should be a bug of package, you should check if there is no oracle-cdc jar under ${SEATUNNEL_HOME}/connectors, if there is no jar, you need to package it yourself.

yunfeng79 commented 4 months ago

@dailai flink-sql-connector-oracle-cdc-2.3.0.jar under ${SEATUNNEL_HOME}/connectors Upload it, or report an error

dailai commented 4 months ago

@dailai flink-sql-connector-oracle-cdc-2.3.0.jar under ${SEATUNNEL_HOME}/connectors Upload it, or report an error

Not flink's oracle-cdc jar. It's seatunnel's oracle-cdc jar named connector-cdc-oracle-2.3.5.jar.

yunfeng79 commented 4 months ago

@dailai only version 2.3.4 is found, but the jar package of version 2.3.5 is not found

dailai commented 4 months ago

@dailai only version 2.3.4 is found, but the jar package of version 2.3.5 is not found

You can use the 2.3.5.Release branch of Apache seatunnel for packaging.

yunfeng79 commented 4 months ago

@dailai Okay, Is the connection PDB name supported?Caused by: org.apache.seatunnel.api.table.catalog.exception.CatalogException: ErrorCode:[API-03], ErrorDescription:[Catalog initialize failed] - Failed connecting to jdbc:oracle:thin:user/zuser@ip:pdbname via JDBC. at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.getConnection(AbstractJdbcCatalog.java:121) at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.open(AbstractJdbcCatalog.java:127)

yunfeng79 commented 4 months ago

Caused by: java.sql.SQLException: ORA-12505: Cannot connect to database. SID TEST is not registered with the listener at host IP port 1521.

github-actions[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.

EricJoy2048 commented 3 months ago

@dailai Okay, Is the connection PDB name supported?Caused by: org.apache.seatunnel.api.table.catalog.exception.CatalogException: ErrorCode:[API-03], ErrorDescription:[Catalog initialize failed] - Failed connecting to jdbc:oracle:thin:user/zuser@ip:pdbname via JDBC. at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.getConnection(AbstractJdbcCatalog.java:121) at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.open(AbstractJdbcCatalog.java:127)

Yes, Please see the document.