loustler opened a new issue, #7456:
URL: https://github.com/apache/seatunnel/issues/7456

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   I was tried a below job configuration
   
   ```json
   {
       "env":
       {
           "job.mode": "batch",
           "parallelism": 3,
           "job.retry.times": 0,
           "shade.identifier": "base64"
       },
       "source":
       [
           {
               "result_table_name": "TABLE",
               "url": "DB_URL",
               "driver": "com.mysql.cj.jdbc.Driver",
               "user": "USER",
               "password": "PASSWORD",
               "connection_check_timeout_sec": 100,
               "query": "SELECT * FROM TABLE",
               "fetch_size": 50000,
               "table_path": "TABLE",
               "split.size": 10000000,
               "plugin_name": "Jdbc"
           }
       ],
       "sink":
       [
           {
               "source_table_name": "TABLE",
               "path": "/path/to/TABLE",
               "custom_filename": "true",
               "file_name_expression": "${transactionId}_${uuid}_${now}",
               "filename_time_format": "yyyyMMddHHmmss",
               "batch_size": 10000000,
               "have_partition": "false",
               "bucket": "oss://my-bucket",
               "access_key": "ACCESS_KEY",
               "access_secret": "SECRET_KEY",
               "endpoint": "https://ENDPOINT.com";,
               "file_format_type": "parquet",
               "plugin_name": "OssFile"
           }
       ]
   }
   ```
   
   Sink connectors that has extended a `BaseMultipleTableFileSink`, such as S3 
and LocalFile, implement a `CatalogFactory`, but OSS connector does not.
   I don't know why OSS connector doesn't implement a `CatalogFactory`, but it 
should.
   
   ### SeaTunnel Version
   
   Latest version(2.3.7)
   
   ### SeaTunnel Config
   
   ```conf
   seatunnel:
     engine:
       history-job-expire-minutes: 1440
       backup-count: 1
       queue-type: blockingqueue
       print-execution-info-interval: 60
       print-job-metrics-info-interval: 60
       classloader-cache-mode: true
       slot-service:
         dynamic-slot: true
       checkpoint:
         interval: 10000
         timeout: 9000000
         storage:
           type: hdfs
           max-retained: 1
           plugin-config:
             storage.type: oss
             oss.bucket: oss://my-bucket
             fs.oss.accessKeyId: ACCESS_KEY
             fs.oss.accessKeySecret: SECRET_KEY
             fs.oss.endpoint: https://ENDPOINT.com
             fs.oss.credentials.provider: 
org.apache.hadoop.fs.aliyun.oss.AliyunCredentialsProvider
   ```
   
   
   ### Running Command
   
   ```shell
   ${SEATUNNEL_HOME}/bin/seatunnel-cluster.sh
   ```
   
   
   ### Error Exception
   
   ```log
   Available factory identifiers are:
   
   Dameng
   IRIS
   MySQL
   OceanBase
   Oracle
   Postgres
   Redshift
   SapHana
   SqlServer
   TiDB
   XUGU
        at 
org.apache.seatunnel.api.table.factory.FactoryUtil.discoverFactory(FactoryUtil.java:216)
        at 
org.apache.seatunnel.connectors.seatunnel.file.sink.BaseMultipleTableFileSink.getSaveModeHandler(BaseMultipleTableFileSink.java:123)
        at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:372)
        at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:383)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at 
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at 
java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
        at 
java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.Iterator.forEachRemaining(Iterator.java:116)
        at 
java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
        at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at 
java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
        at 
org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:242)
        at 
org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$4(CoordinatorService.java:499)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)
   
        at 
java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375) 
~[?:1.8.0_392]
        at 
java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1947) 
~[?:1.8.0_392]
        at 
org.apache.seatunnel.engine.server.rest.RestHttpPostCommandProcessor.submitJob(RestHttpPostCommandProcessor.java:239)
 ~[seatunnel-starter.jar:2.3.7]
        at 
org.apache.seatunnel.engine.server.rest.RestHttpPostCommandProcessor.handleSubmitJob(RestHttpPostCommandProcessor.java:146)
 ~[seatunnel-starter.jar:2.3.7]
        at 
org.apache.seatunnel.engine.server.rest.RestHttpPostCommandProcessor.handle(RestHttpPostCommandProcessor.java:82)
 ~[seatunnel-starter.jar:2.3.7]
        at 
org.apache.seatunnel.engine.server.rest.RestHttpPostCommandProcessor.handle(RestHttpPostCommandProcessor.java:60)
 ~[seatunnel-starter.jar:2.3.7]
        at 
com.hazelcast.internal.ascii.TextCommandServiceImpl$CommandExecutor.run(TextCommandServiceImpl.java:402)
 ~[seatunnel-starter.jar:2.3.7]
        at 
com.hazelcast.internal.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:217)
 ~[seatunnel-starter.jar:2.3.7]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[?:1.8.0_392]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_392]
        at java.lang.Thread.run(Thread.java:750) [?:1.8.0_392]
        at 
com.hazelcast.internal.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
 ~[seatunnel-starter.jar:2.3.7]
        at 
com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:102)
 ~[seatunnel-starter.jar:2.3.7]
   Caused by: org.apache.seatunnel.engine.common.exception.JobException: 
org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], 
ErrorDescription:[Factory initialize failed] - Could not find any factory for 
identifier 'OssFile' that implements 
'org.apache.seatunnel.api.table.factory.CatalogFactory' in the classpath.
   ```
   
   
   ### Zeta or Flink or Spark Version
   
   I was used a provided zeta version by `./bin/install-plugin.sh 2.3.7` and a 
tar distribution
   
   ### Java or Scala Version
   
   8u392b08
   
   ### Screenshots
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to