nccuong-vikki commented on issue #8559:
URL: https://github.com/apache/seatunnel/issues/8559#issuecomment-2831897315

   @rafi12396 It worked ? 
   Can you please provide me more information, like what jar files that you 
need to manually download and where did you put them ? 
   I installed the `bundle-2.31.29.jar (AWS SDK V2)` to the **/lib**, and 
already did like what you said: 
   ```
   sink {
     Iceberg {
       plugin_input      = "sql_transformed"
   
       catalog_name      = "hadoop_cat"
       iceberg.catalog.config={
           warehouse = "My S3"
           catalog-impl = "org.apache.iceberg.aws.glue.GlueCatalog"
           io-impl = "org.apache.iceberg.aws.s3.S3FileIO"
       }
   
       namespace     = "analytics_db"
       table             = "events_iceberg"
   
       iceberg.table.write-props={
           write.format.default="parquet"
       }
     }
   }
   ```
   But it then got this error : 
   ```
   Exception in thread "main" 
org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel 
job executed failed
           at 
org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228)
           at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
           at 
org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:34)
   Caused by: java.util.concurrent.CompletionException: 
org.apache.seatunnel.engine.common.exception.JobException: 
org.apache.seatunnel.common.exception.SeaTunnelRuntimeException: 
ErrorCode:[API-09], ErrorDescription:[Handle save mode failed]
           at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:568)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:574)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.lambda$init$1(JobMaster.java:273)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
           at 
java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
           at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
           at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
           at 
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
           at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
           at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
           at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
           at 
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:267)
           at 
org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:649)
           at 
org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43)
           at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
           at java.base/java.lang.Thread.run(Thread.java:840)
   Caused by: java.lang.IllegalArgumentException: Cannot initialize Catalog 
implementation org.apache.iceberg.aws.glue.GlueCatalog: Cannot find constructor 
for interface org.apache.iceberg.catalog.Catalog
           Missing org.apache.iceberg.aws.glue.GlueCatalog 
[java.lang.ClassNotFoundException: org.apache.iceberg.aws.glue.GlueCatalog]
           at org.apache.iceberg.CatalogUtil.loadCatalog(CatalogUtil.java:224)
           at 
org.apache.iceberg.CatalogUtil.buildIcebergCatalog(CatalogUtil.java:284)
           at 
org.apache.seatunnel.connectors.seatunnel.iceberg.IcebergCatalogLoader.loadCatalog(IcebergCatalogLoader.java:61)
           at 
org.apache.seatunnel.connectors.seatunnel.iceberg.catalog.IcebergCatalog.open(IcebergCatalog.java:92)
           at 
org.apache.seatunnel.api.sink.DefaultSaveModeHandler.open(DefaultSaveModeHandler.java:78)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:565)
           ... 21 more
   Caused by: java.lang.NoSuchMethodException: Cannot find constructor for 
interface org.apache.iceberg.catalog.Catalog
           Missing org.apache.iceberg.aws.glue.GlueCatalog 
[java.lang.ClassNotFoundException: org.apache.iceberg.aws.glue.GlueCatalog]
           at 
org.apache.iceberg.common.DynConstructors.buildCheckedException(DynConstructors.java:250)
           at 
org.apache.iceberg.common.DynConstructors.access$200(DynConstructors.java:32)
           at 
org.apache.iceberg.common.DynConstructors$Builder.buildChecked(DynConstructors.java:220)
           at org.apache.iceberg.CatalogUtil.loadCatalog(CatalogUtil.java:221)
           ... 26 more
           Suppressed: java.lang.ClassNotFoundException: 
org.apache.iceberg.aws.glue.GlueCatalog
                   at 
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
                   at 
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
                   at 
org.apache.seatunnel.engine.common.loader.SeaTunnelBaseClassLoader.loadClassWithoutExceptionHandling(SeaTunnelBaseClassLoader.java:56)
                   at 
org.apache.seatunnel.engine.common.loader.SeaTunnelChildFirstClassLoader.loadClassWithoutExceptionHandling(SeaTunnelChildFirstClassLoader.java:97)
                   at 
org.apache.seatunnel.engine.common.loader.SeaTunnelBaseClassLoader.loadClass(SeaTunnelBaseClassLoader.java:47)
                   at 
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
                   at java.base/java.lang.Class.forName0(Native Method)
                   at java.base/java.lang.Class.forName(Class.java:467)
                   at 
org.apache.iceberg.common.DynConstructors$Builder.impl(DynConstructors.java:149)
                   ... 27 more
   
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.wrapInCompletionException(AbstractInvocationFuture.java:1347)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.cascadeException(AbstractInvocationFuture.java:1340)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.access$200(AbstractInvocationFuture.java:65)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture$ApplyNode.execute(AbstractInvocationFuture.java:1478)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.unblockOtherNode(AbstractInvocationFuture.java:797)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.unblockAll(AbstractInvocationFuture.java:759)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.complete0(AbstractInvocationFuture.java:1235)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.completeExceptionallyInternal(AbstractInvocationFuture.java:1223)
           at 
com.hazelcast.spi.impl.AbstractInvocationFuture.completeExceptionally(AbstractInvocationFuture.java:709)
           at 
com.hazelcast.client.impl.spi.impl.ClientInvocation.completeExceptionally(ClientInvocation.java:294)
           at 
com.hazelcast.client.impl.spi.impl.ClientInvocation.notifyExceptionWithOwnedPermission(ClientInvocation.java:321)
           at 
com.hazelcast.client.impl.spi.impl.ClientInvocation.notifyException(ClientInvocation.java:304)
           at 
com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.handleResponse(ClientResponseHandlerSupplier.java:164)
           at 
com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.process(ClientResponseHandlerSupplier.java:141)
           at 
com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.access$300(ClientResponseHandlerSupplier.java:60)
           at 
com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier$DynamicResponseHandler.accept(ClientResponseHandlerSupplier.java:251)
           at 
com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier$DynamicResponseHandler.accept(ClientResponseHandlerSupplier.java:243)
           at 
com.hazelcast.client.impl.connection.tcp.TcpClientConnection.handleClientMessage(TcpClientConnection.java:245)
           at 
com.hazelcast.client.impl.protocol.util.ClientMessageDecoder.handleMessage(ClientMessageDecoder.java:135)
           at 
com.hazelcast.client.impl.protocol.util.ClientMessageDecoder.onRead(ClientMessageDecoder.java:89)
           at 
com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:136)
           at 
com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:383)
           at 
com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:368)
           at 
com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:294)
           at 
com.hazelcast.internal.networking.nio.NioThread.executeRun(NioThread.java:249)
           at 
com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:102)
   Caused by: org.apache.seatunnel.engine.common.exception.JobException: 
org.apache.seatunnel.common.exception.SeaTunnelRuntimeException: 
ErrorCode:[API-09], ErrorDescription:[Handle save mode failed]
           at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:568)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:574)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.lambda$init$1(JobMaster.java:273)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
           at 
java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
           at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
           at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
           at 
java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
           at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
           at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
           at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
           at 
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:267)
           at 
org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:649)
           at 
org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43)
           at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
           at java.base/java.lang.Thread.run(Thread.java:840)
   Caused by: java.lang.IllegalArgumentException: Cannot initialize Catalog 
implementation org.apache.iceberg.aws.glue.GlueCatalog: Cannot find constructor 
for interface org.apache.iceberg.catalog.Catalog
           Missing org.apache.iceberg.aws.glue.GlueCatalog 
[java.lang.ClassNotFoundException: org.apache.iceberg.aws.glue.GlueCatalog]
           at org.apache.iceberg.CatalogUtil.loadCatalog(CatalogUtil.java:224)
           at 
org.apache.iceberg.CatalogUtil.buildIcebergCatalog(CatalogUtil.java:284)
           at 
org.apache.seatunnel.connectors.seatunnel.iceberg.IcebergCatalogLoader.loadCatalog(IcebergCatalogLoader.java:61)
           at 
org.apache.seatunnel.connectors.seatunnel.iceberg.catalog.IcebergCatalog.open(IcebergCatalog.java:92)
           at 
org.apache.seatunnel.api.sink.DefaultSaveModeHandler.open(DefaultSaveModeHandler.java:78)
           at 
org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:565)
           ... 21 more
   Caused by: java.lang.NoSuchMethodException: Cannot find constructor for 
interface org.apache.iceberg.catalog.Catalog
           Missing org.apache.iceberg.aws.glue.GlueCatalog 
[java.lang.ClassNotFoundException: org.apache.iceberg.aws.glue.GlueCatalog]
           at 
org.apache.iceberg.common.DynConstructors.buildCheckedException(DynConstructors.java:250)
           at 
org.apache.iceberg.common.DynConstructors.access$200(DynConstructors.java:32)
           at 
org.apache.iceberg.common.DynConstructors$Builder.buildChecked(DynConstructors.java:220)
           at org.apache.iceberg.CatalogUtil.loadCatalog(CatalogUtil.java:221)
           ... 26 more
           Suppressed: java.lang.ClassNotFoundException: 
org.apache.iceberg.aws.glue.GlueCatalog
                   at 
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
                   at 
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
                   at 
org.apache.seatunnel.engine.common.loader.SeaTunnelBaseClassLoader.loadClassWithoutExceptionHandling(SeaTunnelBaseClassLoader.java:56)
                   at 
org.apache.seatunnel.engine.common.loader.SeaTunnelChildFirstClassLoader.loadClassWithoutExceptionHandling(SeaTunnelChildFirstClassLoader.java:97)
                   at 
org.apache.seatunnel.engine.common.loader.SeaTunnelBaseClassLoader.loadClass(SeaTunnelBaseClassLoader.java:47)
                   at 
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
                   at java.base/java.lang.Class.forName0(Native Method)
                   at java.base/java.lang.Class.forName(Class.java:467)
                   at 
org.apache.iceberg.common.DynConstructors$Builder.impl(DynConstructors.java:149)
                   ... 27 more
   
           at 
org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:656)
           at 
org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43)
           at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
           at java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
           at java.lang.Thread.run(Thread.java:840)
   ```
   I then have a deeper research into the repo, and see that the 
GlueCatalog.class only exists in the iceberg-aws, and the pom.xml of the 
connector-iceberg-2.3.10 did not have that : 
[pom.xml](https://github.com/apache/seatunnel/blob/dev/seatunnel-connectors-v2/connector-iceberg/pom.xml)
   
   So I did try to manually install all of that jar files and desperately put 
them into **/lib** or **/connectors** folder, but neither work since they run 
only one connector jar file (they have a prefix for each connector plugin at 
[plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties))
 - I did try to rename to have the same prefix but it will cause this to 
trigger SeaTunnelException in selectPluginJar : 
[this](https://github.com/apache/seatunnel/blob/dev/seatunnel-plugin-discovery/src/main/java/org/apache/seatunnel/plugin/discovery/AbstractPluginDiscovery.java)
   
   
   I really need your help, please tell me what did you do @rafi12396 


-- 
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