Repository navigation
HIVE-30242: Bump to JDK25 runtime in docker images - #6948
Open
abstractdog wants to merge 1 commit into
Open
abstractdog wants to merge 1 commit into
abstractdog wants to merge 1 commit into
Conversation
abstractdog
force-pushed
the
java25-docker
branch
from
November 5, 2026 13:58
b7b79a6 to
2d8e2be
Compare
deniskuzZ
approved these changes
Nov 5, 2026
Member
There was a problem hiding this comment.
Thanks! +1, with two optional suggestions.
Verified:
- I've been running Hive on
eclipse-temurin:25-jdk-ubi10-minimal(RHEL 10.2, glibc 2.39, JDK 25.0.5) with Hadoop 3.4.3 for over a week on a 12-node TPC-DS 10 TB cluster: HS2, HMS, LLAP and a standalone Tez AM, with no JVM flags beyond the existing--add-opens. No restricted-method warnings in the logs, so--enable-native-accessis not needed. apache/hadoop:3.4.3does ship Java 11 (JAVA_VERSION=jdk-11.0.28+6; 3.4.2 shipped Java 8), so the new comment in the tez-yarn-it Dockerfile is accurate.- The new tagging fixes a real bug on master:
docker-compose.ymlrunshive-it-hadoop:latest, whilebuildHadoopImage()buildshive-it-hadoop-<uuid>, so the test never ran the image it built.
Suggestions (non-blocking):
TezYarnClusterContainer: instead of re-tagging the built image ashive-it-hadoop:latestand removing that tag instop(), the compose file could take the image from the environment,image: ${HIVE_IT_HADOOP_IMAGE}, withnew ComposeContainer(composeFile).withEnv("HIVE_IT_HADOOP_IMAGE", hadoopImage). This also works withwithLocalCompose(false), since testcontainers 1.21.4 passes the env to the compose container.
It fixes the same bug without a shared mutable tag: two runs on one Docker host would re-pointlatestunder each other.untagHadoopImage()and itsDockerExceptionhandling would also go away, because the image keeps a single tag and Ryuk can delete it.standalone-metastore/packaging/src/docker/Dockerfile: this moves from a pinned JRE (21.0.3_9-jre-ubi9-minimal) to an unpinned JDK (25-jdk-ubi10-minimal), while the operator image uses25-jre-ubi10-minimal. If the metastore image doesn't need the JDK tools,25-jre-ubi10-minimalkeeps it smaller and matches the operator image. If it does (e.g.jcmdfor thread dumps, as in the main image), a line in the description would help.
|
This branch has not been deployed
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?
Switch the runtime of Hive's Docker images from Java 21 to Java 25:
packaging/src/docker/Dockerfile:eclipse-temurin:21-jdk-ubi9-minimal→25-jdk-ubi10-minimalpackaging/src/kubernetes/Dockerfile:21-jre-ubi9-minimal→25-jre-ubi10-minimalstandalone-metastore/packaging/src/docker/Dockerfile:21.0.3_9-jre-ubi9-minimal→25-jdk-ubi10-minimalitests/tez-yarn-itHadoop image:/opt/jdk25;CONTAINER_JAVA_HOMEis updated to match.apache/hadoop:3.4.2to3.4.3. On JDK 24+ (JEP 486), theUserGroupInformationin Hadoop 3.4.2 callsSubject.getSubject, which throwsUnsupportedOperationException, so the Tez AM fails at startup.TezYarnClusterContainernow also tags the image it builds ashive-it-hadoop:latest, the namedocker-compose.ymlrefers to. Without that tag, compose either used a stale local image or tried to pull one from a registry.deleteOnExit=true, andstop()removes thelatesttag so Ryuk can delete it.The Maven build JDK (CI workflows, Jenkinsfile, README prerequisites) stays on Java 21.
Why are the changes needed?
To run Hive in Docker on the current Java LTS release.
Does this PR introduce any user-facing change?
Yes. The published Hive and standalone Metastore Docker images now run on Java 25 with a UBI 10 base.
How was this patch tested?
mvn test -Pitests,tez-yarn -pl itests/tez-yarn-it, starting with nohive-it-hadoopimages present locally. The test passed, the Tez AM launched withJAVA_HOME=/opt/jdk25, and nohive-it-hadoopimages were left after the run.