Supported Java Versions
- Apache Hadoop 3.3 and upper supports Java 8 and Java 11 (runtime only)
- Please compile Hadoop with Java 8. Compiling Hadoop with Java 11 is not supported:
- Apache Hadoop from 3.0 to 3.2 now supports only Java 8
- Apache Hadoop from 2.7.x to 2.x support Java 7 and 8
Supported JDKs/JVMs
- Now Apache Hadoop community is using OpenJDK for the build/test/release environment, and that's why OpenJDK should be supported in the community.
- Other jdks/jvms should work well. If you find they don't work as expected, please file a JIRA.
Java Incompatible Changes
This document is for users who upgrade Java version of their Hadoop cluster. It documents the incompatible changes of Java that affect Apache Hadoop.
Java 8
Versions | Incompatible changes | Related JDK bug system tickets | Related JIRAs |
---|---|---|---|
1.8.0_242 | The visibility of sun.nio.ch.SocketAdaptor is changed from public to package-private. TestIPC#testRTEDuringConnectionSetup is affected. | JDK-8237177 |
|
1.8.0_242 | Kerberos Java client will fail by "Message stream modified (41)" when the client requests a renewable ticket and the KDC returns a non-renewable ticket. If your principal is not allowed to obtain a renewable ticket, you must remove "renew_lifetime" setting from your krb5.conf. | JDK-8131051 | |
1.8.0_191 | All DES cipher suites were disabled. If you are explicitly using DEC cipher suites, you need to change cipher suite to a strong one. |
| |
1.8.0_171 | In Apache Hadoop 2.7.0 to 2.7.6, 2.8.0 to 2.8.4, 2.9.0 to 2.9.1, 3.0.0 to 3.0.2, and 3.1.0, KMS fails by java.security.UnrecoverableKeyException due to Enhanced KeyStore Mechanisms. You need to set the system property "jceks.key.serialFilter" to the following value to avoid this error: java.lang.Enum;java.security.KeyRep;java.security.KeyRep$Type;javax.crypto.spec.SecretKeySpec;org.apache.hadoop.crypto.key.JavaKeyStoreProvider$KeyMetadata;!*" |
|