puchengy opened a new issue, #4251:
URL: https://github.com/apache/gravitino/issues/4251

   ### Version
   
   main branch
   
   ### Describe what's wrong
   
   version: 0.5.1. Can not start server using S3FileIO for Iceberg Rest Catalog.
   
   ### Error message and/or stacktrace
   
   ```
   Exception in thread "main" java.lang.RuntimeException: 
java.lang.IllegalArgumentException: Cannot initialize FileIO, missing no-arg 
constructor: org.apache.iceberg.aws.s3.S3FileIO
        at 
com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$doWithClassLoader$4(AuxiliaryServiceManager.java:158)
        at 
com.datastrato.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:72)
        at 
com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.doWithClassLoader(AuxiliaryServiceManager.java:153)
        at 
com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$serviceInit$6(AuxiliaryServiceManager.java:173)
        at java.base/java.util.HashMap.forEach(HashMap.java:1337)
        at 
com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.serviceInit(AuxiliaryServiceManager.java:171)
        at 
com.datastrato.gravitino.GravitinoEnv.initialize(GravitinoEnv.java:209)
        at 
com.datastrato.gravitino.server.GravitinoServer.initialize(GravitinoServer.java:62)
        at 
com.datastrato.gravitino.server.GravitinoServer.main(GravitinoServer.java:133)
   Caused by: java.lang.IllegalArgumentException: Cannot initialize FileIO, 
missing no-arg constructor: org.apache.iceberg.aws.s3.S3FileIO
        at org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:312)
        at org.apache.iceberg.hive.HiveCatalog.initialize(HiveCatalog.java:111)
        at 
com.datastrato.gravitino.catalog.lakehouse.iceberg.utils.IcebergCatalogUtil.loadHiveCatalog(IcebergCatalogUtil.java:41)
        at 
com.datastrato.gravitino.catalog.lakehouse.iceberg.utils.IcebergCatalogUtil.loadCatalogBackend(IcebergCatalogUtil.java:89)
        at 
com.datastrato.gravitino.catalog.lakehouse.iceberg.ops.IcebergTableOps.<init>(IcebergTableOps.java:52)
        at 
com.datastrato.gravitino.catalog.lakehouse.iceberg.IcebergRESTService.initServer(IcebergRESTService.java:55)
        at 
com.datastrato.gravitino.catalog.lakehouse.iceberg.IcebergRESTService.serviceInit(IcebergRESTService.java:80)
        at 
com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$serviceInit$5(AuxiliaryServiceManager.java:176)
        at 
com.datastrato.gravitino.auxiliary.AuxiliaryServiceManager.lambda$doWithClassLoader$4(AuxiliaryServiceManager.java:156)
        ... 8 more
   Caused by: java.lang.NoSuchMethodException: Cannot find constructor for 
interface org.apache.iceberg.io.FileIO
        Missing org.apache.iceberg.aws.s3.S3FileIO 
[java.lang.ClassNotFoundException: Class no found 
org.apache.iceberg.aws.s3.S3FileIO]
        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.loadFileIO(CatalogUtil.java:309)
        ... 16 more
        Suppressed: java.lang.ClassNotFoundException: Class no found 
org.apache.iceberg.aws.s3.S3FileIO
                at 
com.datastrato.gravitino.utils.IsolatedClassLoader$CustomURLClassLoader.loadClass(IsolatedClassLoader.java:161)
                at 
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
                at java.base/java.lang.Class.forName0(Native Method)
                at java.base/java.lang.Class.forName(Class.java:398)
                at 
org.apache.iceberg.common.DynConstructors$Builder.impl(DynConstructors.java:149)
                at 
org.apache.iceberg.CatalogUtil.loadFileIO(CatalogUtil.java:308)
                ... 16 more
        Caused by: java.lang.ClassNotFoundException: 
org.apache.iceberg.aws.s3.S3FileIO
                at 
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
                at 
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:594)
                at 
com.datastrato.gravitino.utils.IsolatedClassLoader$CustomURLClassLoader.doLoadClass(IsolatedClassLoader.java:189)
                at 
com.datastrato.gravitino.utils.IsolatedClassLoader$CustomURLClassLoader.loadClass(IsolatedClassLoader.java:159)
                ... 21 more
   ```
   
   ### How to reproduce
   
   ```
   gravitino.auxService.iceberg-rest.warehouse = s3://mask
   gravitino.auxService.iceberg-rest.catalog-backend = hive
   gravitino.auxService.iceberg-rest.uri = thrift://mask:9083
   gravitino.auxService.iceberg-rest.io-impl = 
org.apache.iceberg.aws.s3.S3FileIO
   ```
   in config. and restart service.
   
   ### Additional context
   
   _No response_


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