iceberg: master branch - flink sql create hive catalog error
I build a jar file from master branch. when i create a hive catalog on flink sql client ,it comes a problem.
the SQL is :
drop catalog if exists iceberg_catalog;
CREATE CATALOG iceberg_catalog WITH (
'type'='iceberg',
'catalog-type'='hive',
'uri'='thrift://xxx1:9083,thrift://xxx2:9083',
'clients'='5',
'property-version'='1',
'warehouse'='hdfs://hacluster/user/hive/warehouse'
);
error info:
java.lang.IllegalArgumentException: Cannot initialize Catalog, org.apache.iceberg.hive.HiveCatalog does not implement Catalog.
at org.apache.iceberg.CatalogUtil.loadCatalog(CatalogUtil.java:176)
at org.apache.iceberg.flink.CatalogLoader$HiveCatalogLoader.loadCatalog(CatalogLoader.java:112)
at org.apache.iceberg.flink.FlinkCatalog.<init>(FlinkCatalog.java:110)
at org.apache.iceberg.flink.FlinkCatalogFactory.createCatalog(FlinkCatalogFactory.java:130)
at org.apache.iceberg.flink.FlinkCatalogFactory.createCatalog(FlinkCatalogFactory.java:117)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1085)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeOperation(TableEnvironmentImpl.java:1019)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:690)
at org.apache.zeppelin.flink.Flink111Shims.executeSql(Flink111Shims.java:374)
at org.apache.zeppelin.flink.FlinkSqlInterrpeter.callCreateCatalog(FlinkSqlInterrpeter.java:391)
at org.apache.zeppelin.flink.FlinkSqlInterrpeter.callCommand(FlinkSqlInterrpeter.java:244)
at org.apache.zeppelin.flink.FlinkSqlInterrpeter.runSqlList(FlinkSqlInterrpeter.java:151)
at org.apache.zeppelin.flink.FlinkSqlInterrpeter.internalInterpret(FlinkSqlInterrpeter.java:111)
at org.apache.zeppelin.interpreter.AbstractInterpreter.interpret(AbstractInterpreter.java:47)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:110)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:808)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:700)
at org.apache.zeppelin.scheduler.Job.run(Job.java:172)
at org.apache.zeppelin.scheduler.AbstractScheduler.runJob(AbstractScheduler.java:132)
at org.apache.zeppelin.scheduler.ParallelScheduler.lambda$runJobInScheduler$0(ParallelScheduler.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassCastException: org.apache.iceberg.hive.HiveCatalog cannot be cast to org.apache.iceberg.catalog.Catalog
at org.apache.iceberg.CatalogUtil.loadCatalog(CatalogUtil.java:172)
... 22 more
but when i’m using iceberg-flink-runtime-0.11.1.jar . it‘s seems ok. could you tell me how to fix this.
About this issue
- Original URL
- State: open
- Created 3 years ago
- Comments: 17 (5 by maintainers)
Commits related to this issue
- [JDIceberg][SEMI-BACKPORT] fix the catalog interface cast exception #2468 — committed to izchen/iceberg by deleted user 3 years ago
the issue still exists in iceberg1.1.0 on flink1.16.1.
having the same problem with flink-1.12.1 and runtime-0.12.0, switch back to flink-1.11.4 and runtime-0.11.1 then it’s fine.