HIVE-29777: Iceberg: Add GCS, ADLS, and OSS Hadoop mapping for REST vended credentials - #6655
Open
difin wants to merge 9 commits into
Open
HIVE-29777: Iceberg: Add GCS, ADLS, and OSS Hadoop mapping for REST vended credentials#6655difin wants to merge 9 commits into
difin wants to merge 9 commits into
Conversation
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
July 28, 2026 20:51
166f643 to
254c757
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Extends Hive’s Iceberg REST vended-credential propagation from S3-only to additional storage providers by introducing provider-specific Hadoop configuration mappers (GCS, ADLS, OSS), and refactoring vended-credential handling to route secrets through Hive’s Credentials channel while emitting non-secret connector properties into job properties.
Changes:
- Refactors
IcebergVendedCredentialUtilto use provider-specific Hadoop mappers selected by prefix scheme (with config-key fallback). - Adds new vended-credential parsing/mapping utilities under
org.apache.iceberg.mr.hive.vendedfor S3/GCS/ADLS/OSS. - Expands unit tests to cover new provider mappings and non-S3 credentials-channel round-trip behavior; updates Hive hidden config list with new Iceberg credential keys.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| iceberg/iceberg-handler/src/test/java/org/apache/iceberg/mr/hive/TestIcebergVendedCredentialUtil.java | Adds/updates unit tests for GCS/ADLS/OSS mapping and credentials-channel restore coverage. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/VendedCredentialSupport.java | Adds shared helpers for mapper selection, prefix parsing delegation, and extracting credentials from FileIO properties across providers. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/VendedCredentialPrefixUtil.java | Adds prefix/scope parsing and location→prefix normalization utilities. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/VendedCredentialHadoopMappers.java | Adds mapper selection logic by scheme then config-key namespace fallback. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/VendedCredentialHadoopMapper.java | Introduces the mapper interface for translating Iceberg credential keys to Hadoop connector keys plus required non-secret companion properties. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/S3VendedCredentialHadoopMapper.java | Implements S3 vended credential → S3A per-bucket Hadoop mapping. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/GcsVendedCredentialHadoopMapper.java | Implements GCS mapping for non-secret Hadoop connector keys (project/service host), leaving OAuth token in the serialized blob only. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/AdlsVendedCredentialHadoopMapper.java | Implements ADLS mapping for SAS/shared-key related ABFS Hadoop keys plus required non-secret auth-type companion property for SAS. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vended/OssVendedCredentialHadoopMapper.java | Implements OSS mapping for endpoint + access-key/secret/token Hadoop keys. |
| iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/IcebergVendedCredentialUtil.java | Refactors credential propagation/extraction to use the new mapper abstraction and generalized credential extraction from FileIO properties. |
| common/src/java/org/apache/hadoop/hive/conf/HiveConf.java | Extends hive.conf.hidden.list with new Iceberg FileIO credential key prefixes for GCS/ADLS/OSS. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
August 12, 2026 14:03
27bd94b to
48f336f
Compare
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
August 13, 2026 02:38
48f336f to
359cd06
Compare
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
August 13, 2026 14:21
359cd06 to
9adbcb1
Compare
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
August 18, 2026 20:26
7188926 to
98f6539
Compare
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
August 18, 2026 20:36
98f6539 to
d35357c
Compare
difin
force-pushed
the
gcs_adls_oss_mappings_for_vended_creds
branch
from
August 19, 2026 14:23
d35357c to
cadeaa9
Compare
added 9 commits
August 21, 2026 14:23
…ended credentials
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What changes were proposed in this pull request?
This PR extends Iceberg REST vended credential propagation beyond S3 to GCS, ADLS, and OSS. It refactors
IcebergVendedCredentialUtilinto provider-specific Hadoop mappers that translate IcebergStorageCredentialconfig keys into the correctfs.gs.*,fs.azure.*, andfs.oss.*properties. New GCS/ADLS/OSS secret keys are added tohive.conf.hidden.listso they travel via the secure Credentials channel rather than plain job properties. Unit tests cover the new mappings and round-trip behavior.Why are the changes needed?
The original vended-credential work only propagated Hadoop mappings for S3. Iceberg REST catalogs can vend credentials for GCS, ADLS, and OSS as well, but without equivalent mapping those jobs cannot configure the corresponding Hadoop FileSystem connectors on Tez/LLAP execution paths. This change closes that gap so multi-cloud Iceberg deployments can use vended credentials consistently across providers.
Does this PR introduce any user-facing change?
Yes, for deployments using Iceberg REST catalogs with vended credentials on GCS, ADLS, or OSS. Those workloads can now propagate storage credentials to Hadoop FileSystem paths on Tez/LLAP, which was not supported before. Users on S3-only setups or without vended credentials should see no change in behavior.
How was this patch tested?
Unit tests in
TestIcebergVendedCredentialUtilwere expanded to cover GCS, ADLS, and OSS Hadoop property mapping, secret routing intojobSecrets, mapper selection by URI scheme and config-key fallback, and Credentials-channel round-trip restore. Existing S3 coverage was kept and refactored to use the new mapper layout.New q-test driver was added for ADLS + Gravitino + Vended Credentials test:
TestIcebergRESTCatalogGravitinoAdlsLlapLocalCliDriver.New q-test driver was added for GCP + Gravitino + Vended Credentials test:
TestIcebergRESTCatalogGravitinoGcpLlapLocalCliDriver.The 3 drivers
TestIcebergRESTCatalogGravitinoAdlsLlapLocalCliDriver,TestIcebergRESTCatalogGravitinoGcpLlapLocalCliDriver, andTestIcebergRESTCatalogGravitinoLlapLocalCliDriverrun the same q-file:iceberg_rest_catalog_gravitino.q, testing vended credentials with S3, ADLS, and GCP storage providers.No integration coverage was added for OSS in this PR; that is planned as follow-up work.