I'm using Flink SQL to write results to S3 object storage through Hudi. I'm facing an exception when doing the same:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.hudi.avro.HoodieAvroWriteSupport
at org.apache.hudi.io.storage.HoodieAvroFileWriterFactory.newParquetFileWriter(HoodieAvroFileWriterFactory.java:53)
at org.apache.hudi.io.storage.HoodieFileWriterFactory.getFileWriterByFormat(HoodieFileWriterFactory.java:80)
at org.apache.hudi.io.storage.HoodieFileWriterFactory.getFileWriter(HoodieFileWriterFactory.java:67)
at org.apache.hudi.io.HoodieCreateHandle.<init>(HoodieCreateHandle.java:103)
at org.apache.hudi.io.HoodieCreateHandle.<init>(HoodieCreateHandle.java:82)
at org.apache.hudi.io.FlinkCreateHandle.<init>(FlinkCreateHandle.java:66)
at org.apache.hudi.io.FlinkCreateHandle.<init>(FlinkCreateHandle.java:59)
at org.apache.hudi.io.FlinkWriteHandleFactory$BaseCommitWriteHandleFactory.create(FlinkWriteHandleFactory.java:114)
at org.apache.hudi.client.HoodieFlinkWriteClient.getOrCreateWriteHandle(HoodieFlinkWriteClient.java:463)
at org.apache.hudi.client.HoodieFlinkWriteClient.access$000(HoodieFlinkWriteClient.java:75)
at org.apache.hudi.client.HoodieFlinkWriteClient$AutoCloseableWriteHandle.<init>(HoodieFlinkWriteClient.java:512)
at org.apache.hudi.client.HoodieFlinkWriteClient.upsert(HoodieFlinkWriteClient.java:146)
at org.apache.hudi.sink.StreamWriteFunction.lambda$initWriteFunction$1(StreamWriteFunction.java:189)
at org.apache.hudi.sink.StreamWriteFunction.lambda$flushRemaining$7(StreamWriteFunction.java:472)
at java.base/java.util.LinkedHashMap$LinkedValues.forEach(Unknown Source)
at org.apache.hudi.sink.StreamWriteFunction.flushRemaining(StreamWriteFunction.java:464)
at org.apache.hudi.sink.StreamWriteFunction.snapshotState(StreamWriteFunction.java:136)
at org.apache.hudi.sink.common.AbstractStreamWriteFunction.snapshotState(AbstractStreamWriteFunction.java:167)
at org.apache.flink.streaming.util.functions.StreamingFunctionUtils.trySnapshotFunctionState(StreamingFunctionUtils.java:118)
at org.apache.flink.streaming.util.functions.StreamingFunctionUtils.snapshotFunctionState(StreamingFunctionUtils.java:99)
at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.snapshotState(AbstractUdfStreamOperator.java:88)
I'm using Flink 1.17.1 and also have hudi-flink1.16-bundle-0.13.1
in the classpath. Do I need to include any other libraries in the classpath? Can someone please help me on this?