Skip to content

Avro version conflict between Hive and Iceberg libraries #5225

Closed
@lxynov

Description

@lxynov

Currently Hive depends on Avro 1.8.2 whereas Iceberg depends on 1.9.2.

In the Iceberg Connector, we exclude Avro dependency from iceberg-core, so Iceberg has been run with Avro 1.8.2 in Presto. It turns out to be fine for Iceberg 0.9.0 because it doesn't seem to be using any class not available in Avro 1.8.2. However, a new version Iceberg 0.10.0-rc0 breaks because it uses a class InvalidAvroMagicException that is not available in Avro 1.8.2. As a result, this Avro version conflict becomes a blocker for us to bump Iceberg version.

To resolve this, we can consider:

  1. Bump Hive's Avro version to 1.9.2.
  2. Bump both Hive's Avro version and Iceberg's to 1.10.0.
  3. Keep Iceberg's Avro version as 1.9.2 but try to avoid using classes that are not available in 1.8.2
  4. De-bump Iceberg's Avro version to 1.8.2.

@electrum @rdblue @Fokko Could you folks take a look and comment?


FYI I tried to rebase #4776 but it depends on a fix in Iceberg 0.10.0-rc0 to pass some test cases in AbstractTestIcebergSmoke.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions