Creating a cluster with a specific Java version

When you create a new Cloudera Data Hub or Data Lake cluster, you can specify Java 8 or Java 11 as the default JDK.

Java 11

When you launch a new Cloudera Data Hub or Data Lake cluster, the default JDK version is Java 8 unless you specify Java 11. If you specify Java 11 as the default JDK version, Cloudera Manager and all Cloudera Runtime services (as well as all workloads launched) will use pre-installed Java 11 dependencies rather than Java 8. This may be useful, for instance, when you have workloads such as Spark 3 jobs that are written in Java 11, when your workloads have Java 11 dependencies, or if you are running third-party components on a cluster that require Java 11.

The ability to launch new Cloudera Data Hub and Data Lake clusters with Java 11 is currently available only through the CDP CLI. Include the parameter --java-version in the create-<cloud_provider>-datalake and create-<cloud_provider>-datahub CLI commands. Valid inputs for the --java-version parameter are 8 and 11.

Launching clusters with Java 11 as the default is supported from Cloudera Runtime versions 7.2.15.11 and 7.2.16.200 and above. Creating clusters with the Java version property set to 11 on older Cloudera Runtime versions will be blocked by an internal validation. Currently, the Java version selection is only available when creating a new cluster.

Java 8 and 11 compatibility

Java 11 introduces breaking changes, which could lead to incompatibility with your current workloads or custom/third-party Java-based applications deployed on Cloudera Data Hub clusters.

Cloudera recommends that all existing production workloads are tested before moving them over to a Cloudera Data Hub cluster that is set to use Java 11 as the default JDK.

Note that Data Lake and Cloudera Data Hub hosts will continue to have both Java 8 and 11 pre-installed. The --java-version switch controls which Java versionn should be set as the OS default during bootstrapping of the hosts. Therefore, it is possible to continue to run jobs written for Java 8 even if the OS default is Java 11. Some services (for example, Spark) make this possible by setting the JAVA_PATH environment variable to point to the Java 8 path /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.[...].x86_64/jre/bin/java.