-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Closed
Copy link
Description
If you try deploy the version of iceberg-hive-runtime in master on Hive 2 one gets exceptions like this:
2020-10-19T11:19:25,011 ERROR [8aadf788-a388-4641-88f6-4e7a07e8929e main([])]: exec.DDLTask (DDLTask.java:failed(639)) - java.lang.NoClassDefFoundError: org/apache/hadoop/hive/serde2/io/DateWritableV2
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2729)
at java.lang.Class.privateGetMethodRecursive(Class.java:3076)
at java.lang.Class.getMethod0(Class.java:3046)
at java.lang.Class.getMethod(Class.java:1812)
at org.apache.iceberg.common.DynMethods$Builder.impl(DynMethods.java:305)
at org.apache.iceberg.common.DynMethods$Builder.impl(DynMethods.java:264)
at org.apache.iceberg.common.DynMethods$Builder.impl(DynMethods.java:283)
at org.apache.iceberg.mr.hive.serde.objectinspector.IcebergObjectInspector.<clinit>(IcebergObjectInspector.java:40)
at org.apache.iceberg.mr.hive.HiveIcebergSerDe.initialize(HiveIcebergSerDe.java:67)
This is because the Hive3 object inspector classes are present in the runtime jar:
jar -tf 9d98b1d.dirty/iceberg-hive-runtime-9d98b1d.dirty.jar | grep Hive3
org/apache/iceberg/mr/hive/serde/objectinspector/IcebergDateObjectInspectorHive3.class
org/apache/iceberg/mr/hive/serde/objectinspector/IcebergTimestampObjectInspectorHive3$1.class
org/apache/iceberg/mr/hive/serde/objectinspector/IcebergTimestampObjectInspectorHive3$2.class
org/apache/iceberg/mr/hive/serde/objectinspector/IcebergTimestampObjectInspectorHive3.class
which means it attempts to load these object inspectors which in turn fails as the required Hive 3 classes aren't on the classpath.
I'm pretty sure this issue started happening after the changes introduced in #1478.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels