Запустите Spark на Java 10 - PullRequest
       74

Запустите Spark на Java 10

0 голосов
/ 29 сентября 2018

мой пользовательский случай : мы запускаем кластер Spark на Mesos, так как наш кластер Mesos также содержит другие платформы, такие как Storm, Cassandra, у нас были случаи, когда работа Spark чрезмерно загружала процессор, что вызывало конфликт ресурсов сдругие фреймворки.

target : запустить немодульное приложение spark (jar скомпилировано с Java-совместимым компилятором sbt) в Java 10, чтобы использовать поддержку контейнера Java 10.Ссылка по теме: https://bugs.openjdk.java.net/browse/JDK-8146115

После прочтения некоторых чтений о Java 9 это мой воображаемый happy-path :

  1. Точка JAVA_HOME в Java 10,
  2. Запустите мое искровое задание, разрешите ClassNotFoundException, найдите, например, недостающие модули в документации Oracle (модуль java.sql https://docs.oracle.com/javase/9/docs/api/java.sql-summary.html) отсутствует, добавьте «spark.executor.extraJavaOptions -add-modules java.se.ee ”-> conf / spark-defaults.conf
  3. Повторяйте шаг 2, пока не будет выброшено больше исключений

однако я нашел это,

Предупреждение: локальный jar *** / java.se.ee не существует, пропуская.

java.lang.ClassNotFoundException: com.**.spark.Main at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:374)
at org.apache.spark.util.Utils$.classForName(Utils.scala:233)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:732)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Это то, что я наблюдал после перехода в режим подробного ввода

...

Использование файла свойств: /tmp/spark-2.2.2-bin-hadoop2.6/conf/spark-defaults.conf

Добавление свойства по умолчанию: spark.eventLog.enabled = true Добавление свойства по умолчанию: spark.eventLog.dir = hdfs: // *** Добавление свойства по умолчанию: spark.executor.extraJavaOptions = - add-modules java.se.ee

ParsАргументы ed:

master                 mesos://localhost:10017
deployMode             cluster
executorMemory         16G
executorCores           2
totalExecutorCores     50
propertiesFile         /tmp/spark-2.2.2-bin-hadoop2.6/conf/spark- 
defaults.conf 
driverMemory           4G
driverCores             1
driverExtraClassPath   null
driverExtraLibraryPath null
driverExtraJavaOptions null
supervise               false
queue                   null
numExecutors           null
files                   null
pyFiles                 null
archives               null
mainClass               com.**.spark.Main
primaryResource         ***.jar
name                   ***
childArgs               [***]
jars                   null
packages               null
packagesExclusions     null
repositories           null
verbose                true

Spark properties used, including those specified through
--conf and those from the properties file /tmp/spark-2.2.2-bin-hadoop2.6/conf/spark-defaults.conf:
(spark.mesos.uris,hdfs:///***/tmpqIx6x2)
(spark.driver.memory,4G)
(spark.eventLog.enabled,true)
(spark.executor.extraJavaOptions,--add-modules java.se.ee)
(spark.executor.uri,***/spark-2.2.2-bin-hadoop2.6.tgz)
(spark.eventLog.dir,hdfs://***)

Здесь было напечатано предупреждение:

https://github.com/apache/spark/blob/5264164a67df498b73facae207eda12ee133be7d/core/src/main/scala/org/apache/spark/deploy/worker/DriverWrapper.scala#L101

https://github.com/apache/spark/blob/5264164a67df498b73facae207eda12ee133be7d/core/src/main/scala/org/apache/spark/deploy/DependencyUtils.scala#L76

После прочтения исходного кода.Мне кажется, что spark-submit не понимает опцию --add-modules, поэтому он рассматривает java.se.ee как файл jar, а не как модуль.И я не могу сделать так, как я хочу, чтобы он переводил --add-modules при запуске JVM исполнителя.

Кто-нибудь проводил подобные эксперименты с Spark на Java 9/10?

Заранее спасибо

...