hive 3.1.3 集成iceberg 1.7.2創建Iceberg表報錯如下:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/iceberg/mr/hive/HiveIcebergStorageHandler has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:756)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)at java.net.URLClassLoader.access$100(URLClassLoader.java:74)at java.net.URLClassLoader$1.run(URLClassLoader.java:369)at java.net.URLClassLoader$1.run(URLClassLoader.java:363)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:362)at java.lang.ClassLoader.loadClass(ClassLoader.java:418)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)at java.lang.ClassLoader.loadClass(ClassLoader.java:405)at java.lang.ClassLoader.loadClass(ClassLoader.java:351)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:348)at org.apache.hadoop.hive.ql.parse.ParseUtils.ensureClassExists(ParseUtils.java:258)at org.apache.hadoop.hive.ql.parse.StorageFormat.fillStorageFormat(StorageFormat.java:64)at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeCreateTable(SemanticAnalyzer.java:13004)at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genResolvedParseTree(SemanticAnalyzer.java:11974)at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:12129)at org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:330)at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:285)at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:659)at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1826)at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1773)at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1768)at org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:126)at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:214)at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:239)at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:188)at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:402)at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:821)at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759)at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.util.RunJar.run(RunJar.java:328)at org.apache.hadoop.util.RunJar.main(RunJar.java:241)
看提示是說當前版本iceberg采用java 11編譯,但本地為java 8,看官網release信息證實如此,
https://iceberg.apache.org/releases/#170-release
1.7.0 release🔗
Apache Iceberg 1.7.0 was released on November 8, 2024.
The 1.7.0 release contains fixes, dependency updates, and new features. For full release notes please visit Github. An abridged list follows
Deprecation / End of Support
Java 8
…
Build
Build for Java 11 (#10849) - Removal of Java 8
Build: Add checkstyle rule to ban assert usage (#10886)
Support building with Java 21 (#10474)
在此有兩種解決方案,可以升級到Java11或者Java17,但涉及到影響范圍比較大,謹慎操作。另一種則是降低Iceberg版本,但無法體驗到Iceberg的一些最新特性。在此選擇第二種。此外,有條件的朋友可以自己編譯源碼。