Overview
As of version 25, Dremio requires version 11 of java to run. Depending on exactly which distribution of Java 11 has been installed, something similar to the following error can be thrown in the server.log :
release version 8 not supported
TL:DR:
OpenJDK packages are not necessarily jdk, and may be only jre. Double-check that your distribution of Java 11 installed includes the javac binary.
Troubleshooting
The error message reported means that Dremio is trying to use the Java 8 version of javac instead of the Java 11 version that is needed. This can be caused by incorrect settings of the PATH variable and similar mis-configurations, but it can also be caused by a confusion in which distribution of Java 11 to install.
The troubleshooting steps are:
- Check the command line for the Dremio process, to see exactly which instance of java is being used to run Dremio:
ps -ef | grep dremio
In the output, look for the path to the instance of java being used. E.g:
/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/bin/java - Change to that path, and check to see if the javac binary exists
cd /usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/bin/
ls javac
The likelihood is that javac will not exist in this directory. You can then look for other versions of javac on the system ( find / -name javac 2>/dev/null ) to see which instance of javac may be being used.
Background
Sun Java distributions and others were differentiated in their names, such that anything that had jre in the name was mainly to be used for client applications, and anything with jdk in the name was for development and some server-side software. (That is an over-simplification, but good enough for this discussion).
That has changed over the years, and now that OpenJDK is a name by itself, some packages that are called OpenJDKxxxx no longer include a jdk or the ability to compile java (i.e. the javac binary).
This situation is not limited to Java 11, but the seems to be more prevalent from this version onward.
Solution
Make sure that the distribution of Java that you are installing is the development version and has the javac command included.
Packages which include devel in the name (e.g. java-11-openjdk-devel ) or that are called openjdk-xxxx-jdk (e.g. openjdk-11-jdk ) will normally include javac