Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat](catalog)Replace HadoopUGI with HadoopKerberosAuthenticator to Support Kerberos Ticket Auto-Renewal #44916

Merged
merged 3 commits into from
Dec 6, 2024

Conversation

CalvinKirs
Copy link
Member

@CalvinKirs CalvinKirs commented Dec 3, 2024

Background

The current implementation uses the HadoopUGI method, which invokes the ugiDoAs function for each operation to log in and execute actions based on the configuration. However, this approach has the following issues:

  • Lack of Auto-Renewal: If the Kerberos TGT (Ticket Granting Ticket) expires, manual re-login is required as there is no support for automatic ticket renewal.
  • Redundant Login Overhead: Each operation requires reinitializing or checking UserGroupInformation, potentially causing performance bottlenecks.
  • Complex Management: The HadoopUGI design does not unify the lifecycle management of UGI instances, leading to duplicated logic across the codebase.

Objective

  • Auto-Renewal: Automatically renew Kerberos credentials when the TGT is expired or near expiry.
  • UGI Caching: Maintain reusable UserGroupInformation instances during their lifecycle to avoid repetitive logins.
  • Unified Management: Simplify the management of UGI instances and Kerberos credentials.

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

…Support Kerberos Ticket Auto-Renewal

### Background
The current implementation uses the HadoopUGI method, which invokes the ugiDoAs function for each operation to log in and execute actions based on the configuration. However, this approach has the following issues:

- Lack of Auto-Renewal: If the Kerberos TGT (Ticket Granting Ticket) expires, manual re-login is required as there is no support for automatic ticket renewal.
- Redundant Login Overhead: Each operation requires reinitializing or checking UserGroupInformation, potentially causing performance bottlenecks.
- Complex Management: The HadoopUGI design does not unify the lifecycle management of UGI instances, leading to duplicated logic across the codebase.
### Objective

- Auto-Renewal: Automatically renew Kerberos credentials when the TGT is expired or near expiry.
- UGI Caching: Maintain reusable UserGroupInformation instances during their lifecycle to avoid repetitive logins.
- Unified Management: Simplify the management of UGI instances and Kerberos credentials.
@doris-robot
Copy link

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@CalvinKirs
Copy link
Member Author

run buildall

morningman
morningman previously approved these changes Dec 4, 2024
…er-hadoop-ugi-replace

# Conflicts:
#	fe/be-java-extensions/hudi-scanner/src/main/java/org/apache/doris/hudi/Utils.java
#	fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java
@CalvinKirs
Copy link
Member Author

run buildall

Copy link
Contributor

@morningman morningman left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

github-actions bot commented Dec 6, 2024

PR approved by at least one committer and no changes requested.

@github-actions github-actions bot added approved Indicates a PR has been approved by one committer. reviewed labels Dec 6, 2024
Copy link
Contributor

github-actions bot commented Dec 6, 2024

PR approved by anyone and no changes requested.

@morningman morningman merged commit 0671f57 into apache:master Dec 6, 2024
26 of 28 checks passed
github-actions bot pushed a commit that referenced this pull request Dec 6, 2024
…Support Kerberos Ticket Auto-Renewal (#44916)

### Background
The current implementation uses the HadoopUGI method, which invokes the
ugiDoAs function for each operation to log in and execute actions based
on the configuration. However, this approach has the following issues:

- Lack of Auto-Renewal: If the Kerberos TGT (Ticket Granting Ticket)
expires, manual re-login is required as there is no support for
automatic ticket renewal.
- Redundant Login Overhead: Each operation requires reinitializing or
checking UserGroupInformation, potentially causing performance
bottlenecks.
- Complex Management: The HadoopUGI design does not unify the lifecycle
management of UGI instances, leading to duplicated logic across the
codebase.
### Objective

- Auto-Renewal: Automatically renew Kerberos credentials when the TGT is
expired or near expiry.
- UGI Caching: Maintain reusable UserGroupInformation instances during
their lifecycle to avoid repetitive logins.
- Unified Management: Simplify the management of UGI instances and
Kerberos credentials.
github-actions bot pushed a commit that referenced this pull request Dec 6, 2024
…Support Kerberos Ticket Auto-Renewal (#44916)

### Background
The current implementation uses the HadoopUGI method, which invokes the
ugiDoAs function for each operation to log in and execute actions based
on the configuration. However, this approach has the following issues:

- Lack of Auto-Renewal: If the Kerberos TGT (Ticket Granting Ticket)
expires, manual re-login is required as there is no support for
automatic ticket renewal.
- Redundant Login Overhead: Each operation requires reinitializing or
checking UserGroupInformation, potentially causing performance
bottlenecks.
- Complex Management: The HadoopUGI design does not unify the lifecycle
management of UGI instances, leading to duplicated logic across the
codebase.
### Objective

- Auto-Renewal: Automatically renew Kerberos credentials when the TGT is
expired or near expiry.
- UGI Caching: Maintain reusable UserGroupInformation instances during
their lifecycle to avoid repetitive logins.
- Unified Management: Simplify the management of UGI instances and
Kerberos credentials.
morningman pushed a commit that referenced this pull request Dec 7, 2024
…nticator to Support Kerberos Ticket Auto-Renewal #44916 (#45138)

Cherry-picked from #44916

Co-authored-by: Calvin Kirs <[email protected]>
morningman pushed a commit that referenced this pull request Dec 7, 2024
…nticator to Support Kerberos Ticket Auto-Renewal #44916 (#45137)

Cherry-picked from #44916

Co-authored-by: Calvin Kirs <[email protected]>
@CalvinKirs CalvinKirs deleted the master-hadoop-ugi-replace branch January 16, 2025 09:34
@yiguolei yiguolei mentioned this pull request Jan 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. dev/2.1.8-merged dev/3.0.4-merged reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants