Skip to content

[AMORO-4377][AMS] Decouple the maintenance Iceberg version from mixed-format connectors and move AMS to Iceberg 1.10.2 - #4378

Merged
xxubai merged 2 commits into
apache:masterfrom
j1wonpark:poc/maintenance-iceberg-1.10
Oct 26, 2026
Merged

xxubai merged 2 commits into
apache:masterfrom
j1wonpark:poc/maintenance-iceberg-1.10

Conversation

@j1wonpark

@j1wonpark j1wonpark commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Why are the changes needed?

Closes #4377.

Decouple the Iceberg version used by AMS and optimizers from mixed-format connectors, allowing maintenance upgrades while preserving support for older connector engines.

Brief change log

  • Use Iceberg 1.10.2 by default. Shared Iceberg format and mixed-format modules explicitly retain 1.8.1 through connector-iceberg.version.
  • Align Parquet to 1.16.0 in the parent dependency management and optimizer Avro to 1.12.1.
  • Adapt shared Parquet readers to APIs available in both Iceberg versions and add reader and serialization regression tests.
  • Update an optimizing test fixture for Iceberg 1.10's REPLACE validation.
  • Exclude AMS and dist from Spark 3.3 CI builds; retain connector and optimizer builds.
  • Fix Flink optimizer version selection, Java 11 image tags, and cancellation timeout compatibility.
  • Update distribution dependency metadata and licenses.

Hadoop 2 support removal and persisted-task recovery handling were merged separately in #4452 and #4442.

How was this patch tested?

  • Added AMS tests that read Parquet through shared Hive and Spark readers.
  • Added an optimizer DataFile serialization round-trip test and Flink cancellation timeout tests.
  • During development, validated shared readers against both Iceberg versions, AMS optimizing and cleanup operations, reactor builds, and Flink optimizer execution.
  • Connector tests passed after the final Parquet alignment. Additional Flink integration failures also reproduced with the previous dependency versions.

Validation was performed across multiple revisions, not as a complete rerun against the final merged revision. The earlier Flink integration run used an AMS distribution from a separate BOM experiment.

Notes

  • AMS and optimizers must use the same Iceberg version because task descriptors contain Java-serialized Iceberg objects.
  • Shared format modules still compile against 1.8.1; placement of code requiring newer APIs remains follow-up work.
  • Spark 3.3 connectors remain supported, but AMS requires a newer Spark binding.
  • BOM adoption and engine-specific Iceberg version selection remain follow-up work.
@github-actions github-actions Bot added type:docs Improvements or additions to documentation module:mixed-spark Spark module for Mixed Format module:ams-server Ams server module module:mixed-hive Hive moduel for Mixed Format module:ams-optimizer AMS optimizer module type:infra type:build labels Sep 15, 2026
@j1wonpark
j1wonpark force-pushed the poc/maintenance-iceberg-1.10 branch from 24e8f5f to 1cc6f2c Compare September 18, 2026 10:40
@j1wonpark
j1wonpark marked this pull request as ready for review September 18, 2026 22:20
@zhoujinsong

Copy link
Copy Markdown
Contributor

@j1wonpark Thanks for the work.

Regarding whether Hadoop 2 should be removed or only supported within the mixed format, I suggest initiating a discussion thread on the dev mailing list to raise awareness of this issue and gather more opinions.

@sivakumar-mahalingam

Copy link
Copy Markdown
Contributor

PR notes that the Hadoop 2 distribution still builds, but AMS cannot read Parquet with the upgraded dependency. Could we remove or disable the Hadoop 2 distribution build before merging, so users aren't provided with an artifact that cannot perform this operation?

@j1wonpark

Copy link
Copy Markdown
Contributor Author

@zhoujinsong Thanks, opened the thread: https://lists.apache.org/thread/v7zhhzzgn14wk1vwfqygy1mswwwgb9fy
Independent of the outcome, AMS and the optimizers cannot read Parquet on Hadoop 2 either way, so 6533fdd removes the Hadoop 2 distribution build; the connector side is untouched until the discussion settles.

@j1wonpark

Copy link
Copy Markdown
Contributor Author

@sivakumar-mahalingam Agreed, done in 6533fdd: the Hadoop 2 binary release, docker image and dist dependency list are removed.
The optimizer fails the same way on Hadoop 2.10.2, so the README now describes the Hadoop 2 build as connectors only.

@sivakumar-mahalingam sivakumar-mahalingam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change looks good 👍

@sivakumar-mahalingam

Copy link
Copy Markdown
Contributor

Since the Hadoop 2 distribution is being removed, would it be useful to create a follow-up issue to clean up the remaining Hadoop 2 dependencies/configuration in AMS and optimizers, such as flink-shaded-hadoop-2-uber?

I can take this up if it is aligned with the direction of the project.

@sivakumar-mahalingam

sivakumar-mahalingam commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

@j1wonpark I have already fixed the ci failure as part #4392
Once it is merged, this ci failure won't occur

@sivakumar-mahalingam

Copy link
Copy Markdown
Contributor

@j1wonpark created a pr #4394

@xxubai xxubai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we handle incompatible persisted task inputs/outputs during AMS recovery? After upgrading Iceberg, deserialization failures wrapped as PersistenceException bypass the current recovery handler and can leave tables stuck.

Comment thread pom.xml Resolved
@j1wonpark
j1wonpark force-pushed the poc/maintenance-iceberg-1.10 branch from 6caab6a to f800883 Compare October 14, 2026 14:13
…ectors and upgrade to 1.10.2

Signed-off-by: Jiwon Park <jiwonpark@apache.org>
@j1wonpark
j1wonpark force-pushed the poc/maintenance-iceberg-1.10 branch from f800883 to c6e3467 Compare October 21, 2026 23:04
@j1wonpark

Copy link
Copy Markdown
Contributor Author

@xxubai @zhoujinsong @czy006 Could you review this PR? Updated the default Iceberg version as suggested, addressed recovery in #4442, and removed changes already merged in #4452.

@j1wonpark
j1wonpark requested a review from xxubai October 22, 2026 02:17
Signed-off-by: Jiwon Park <jiwonpark@apache.org>

@xxubai xxubai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@xxubai
xxubai merged commit 1bdac46 into apache:master Oct 26, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module:ams-optimizer AMS optimizer module module:ams-server Ams server module module:mixed-hive Hive moduel for Mixed Format module:mixed-spark Spark module for Mixed Format type:build type:docs Improvements or additions to documentation type:infra

4 participants