Hello i am getting an error while trying to use fl...
# troubleshooting
m
Hello i am getting an error while trying to use flink with iceberg; I am using flink-k8s-operator: v1.4.0 My flink image version is : 1.16.0 I am using these jars; flink-sql-connector-kafka-1.16.0.jar, flink-sql-connector-rabbitmq-1.16.0.jar, iceberg-flink-runtime-1.16-1.1.0.jar, flink-s3-fs-hadoop-1.16.0.jar My code is;
Copy code
table_env.execute_sql("""CREATE CATALOG flink_catalog WITH (
                        'type'='iceberg',
                        'warehouse'='<s3://test/test1/test2>,
                        'catalog-impl'='org.apache.iceberg.aws.glue.GlueCatalog',
                        'io-impl'='org.apache.iceberg.aws.s3.S3FileIO')""")
But i am getting this error; table_env.execute_sql(“”"CREATE CATALOG flink_catalog WITH ( File “/opt/flink/opt/python/pyflink.zip/pyflink/table/table_environment.py”, line 836, in execute_sql File “/opt/flink/opt/python/py4j-0.10.9.3-src.zip/py4j/java_gateway.py”, line 1321, in call File “/opt/flink/opt/python/pyflink.zip/pyflink/util/exceptions.py”, line 146, in deco File “/opt/flink/opt/python/py4j-0.10.9.3-src.zip/py4j/protocol.py”, line 326, in get_return_value py4j.protocol.Py4JJavaError: An error occurred while calling o54.executeSql. : java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration at org.apache.iceberg.flink.FlinkCatalogFactory.clusterHadoopConf(FlinkCatalogFactory.java:207) at org.apache.iceberg.flink.FlinkCatalogFactory.createCatalog(FlinkCatalogFactory.java:135) at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:413) at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1426) at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1172) at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:730) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.apache.flink.api.python.shaded.py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244) at org.apache.flink.api.python.shaded.py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) at org.apache.flink.api.python.shaded.py4j.Gateway.invoke(Gateway.java:282) at org.apache.flink.api.python.shaded.py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) at org.apache.flink.api.python.shaded.py4j.commands.CallCommand.execute(CallCommand.java:79) at org.apache.flink.api.python.shaded.py4j.GatewayConnection.run(GatewayConnection.java:238) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ... 17 more I think It is not seeing the jars the iceberg jars needs to be inside of /opt/flink/lib right ?
m
I'm guessing you would be better off asking this question at Iceberg, since this community doesn't maintain the Iceberg / Flink integration
It looks like you're missing Hadoop though
m
Very thanks 🙂