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]