Skip to content

Conversation

@difin
Copy link
Contributor

@difin difin commented Jul 25, 2025

What changes were proposed in this pull request?

Hive Iceberg RESTCatalog client adaptor.
HMSClient can be backed by this adaptor and this allows Hive to work directly with Iceberg REST catalogs.

Why are the changes needed?

To enable HMSClient work with Iceberg RESTCatalog without HMS.

Does this PR introduce any user-facing change?

Yes, users can make Hive work directly with Iceberg REST catalogs.

How was this patch tested?

New unit and integration tests.

Note: This PR builds on the work originally started by @zratkai in PR #5628. The goal of this PR is to bring that work to completion by fixing HMS REST Client implementation, handling all open issues brought up in code reviews, adapting the implementation to the latest hive changes, and development of Java-based integration tests and q-tests.

@zratkai
Copy link
Contributor

zratkai commented Jul 28, 2025

Hi @difin, thanks for making this ticket forward. However this PR is a copy of my original PR (#5628) but I can not see my name mentioned in the description as an author.

@difin difin force-pushed the iceberg-rest-catalog-client branch from 35b7879 to f66c605 Compare August 6, 2025 20:08
if (StringUtils.isEmpty(catalogType) || CatalogUtil.ICEBERG_CATALOG_TYPE_HIVE.equals(catalogType)) {
return new HiveIcebergMetaHook(conf);
} else {
conf.set(ConfigProperties.LOCK_HIVE_ENABLED, "false");
Copy link
Member

@deniskuzZ deniskuzZ Sep 4, 2025

Choose a reason for hiding this comment

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

probably not part of this PR, however, I am not sure if we are not breaking transaction isolation for non-native catalogs.

HiveTableOperations.doCommit() is doing an atomic METADATA_LOCATION_PROP check & update in HMS backend DB. If location was changed by concurrent transaction - we rollback.
How is that supposed to work in case of Rest or Hadoop catalogs?

@difin difin force-pushed the iceberg-rest-catalog-client branch from 6f7b6df to 77f2b99 Compare September 4, 2025 19:18
@deniskuzZ
Copy link
Member

+1
@difin, please merge with the green build

@sonarqubecloud
Copy link

sonarqubecloud bot commented Sep 5, 2025

@difin difin merged commit 94cb257 into apache:master Sep 5, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants