[Poll] Java 7 and 8

If Druid required Java 8 to run, would that cause problems for anyone out there? Do you have a Java 8 runtime env? Are there any Java 7 dependencies with your Hadoop deployment?

We have upgrade our druid to use Java8.

在 2016年3月8日星期二 UTC+8上午8:23:16,Fangjin Yang写道:

We have running Druid in Java8 in semi Prod mode since the very beginning. Realtime node and tranquility + indexing service both works perfectly fine. Did not try batch ingestion with Hadoop, though

We upgraded our druid clusters to use Java 8 a while ago when Java 7 stopped getting public updates.We had no problems with Java8, even when mixed with Hadoop still running on java7 for batch processing (core hadoop was java7, but our map-reduce jobs were triggered with java8).


Will Lauer
Tech Yahoo, Software Dev Eng, Principal
P: 217.255.4262 M: 508.561.6427
1908 S First St. Champaign IL 61820

Note this question is about making the generated jars java8 only.

The big risks that I’m aware of in such a case are linking with Spark/Scala and running java8 jars on a java7 hadoop cluster.

This means if you rely on scala being able to access druid classes (we do, through the spark indexer) then it might cause issues before scala2.12

It also means if you are running a hadoop cluster on java7 and CANNOT update it to java8, then the druid jars might not run on the v1.7.x jvm

We use a CDH Hadoop cluster with Java 7. We use HDFS as our deep storage and YARN for periodic batch reingestion jobs. We haven’t looked deeply into upgrading the cluster from Java 7 to 8, but according to the Cloudera documentation we can’t do a rolling upgrade from 7 to 8 (?!?), so if upgrading Druid to Java 8 causes problems with batch reingestion, it would be a problem for us.

Java 8 all the way.
Java 7 is so 2012…

Java 8

We have also been using Java 8.

We use Spark for batch indexing via https://github.com/metamx/druid-spark-batch so we can’t use java8 JARs until spark is on a java8 friendly scala version.

We also heavily use Scala internally for other projects, and link those projects against some of Druid’s internals, so we would require Druid jars to target 1.7 level byte-code until we migrate to Scala 2.12.

We would fine to use Java 8.

We also use Java 8 with no problems.

we run a Druid cluster that is compiled against and deployed on java8 and didn’t experience any issues. We have no jdk7 dependencies and would be fine and even preferred if the upstream release was based on java8

+1 Java 8

+1 Java 8

Here’s the status of scala 2.12:

Looks like it won’t be in RC until July

And here’s the Spark 2.12 effort: https://issues.apache.org/jira/browse/SPARK-14220

I just realized that the whole project might not need to be java-7 to be spark/scala compatible. It might be that only an “api” needs to be java-7.

As such, it could be possible to compile druid-api as java-7, and have everything else be java-8.

Running Druid cluster with Java8 over 1 year atleast :slight_smile: