spark не может правильно найти каталог java

#java #apache-spark

#java #apache-искра

Вопрос:

Я создал кластер в Ubuntu 20.04 и spark 3.0.0

После этого я запускаю отправку и получаю следующую ошибку.

 Exception from cluster was: java.io.IOException: Cannot run program "/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java" (in directory "/home/ubuntu/spark-3.0.0-bin-hadoop2.7/work/driver-20201207053401-0000"): error=2, No such file or directory
java.io.IOException: Cannot run program "/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java" (in directory "/home/ubuntu/spark-3.0.0-bin-hadoop2.7/work/driver-20201207053401-0000"): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at org.apache.spark.deploy.worker.ProcessBuilderLike$anon$3.start(DriverRunner.scala:264)
    at org.apache.spark.deploy.worker.DriverRunner.runCommandWithRetry(DriverRunner.scala:229)
    at org.apache.spark.deploy.worker.DriverRunner.runDriver(DriverRunner.scala:210)
    at org.apache.spark.deploy.worker.DriverRunner.prepareAndRunDriver(DriverRunner.scala:193)
    at org.apache.spark.deploy.worker.DriverRunner$anon$2.run(DriverRunner.scala:96)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
    at java.lang.ProcessImpl.start(ProcessImpl.java:271)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 6 more
20/12/07 14:34:06 INFO ShutdownHookManager: Shutdown hook called
 

Я устанавливаю $JAVA_HOME и регистрирую экспорт JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 в ./conf/spark-env.sh

но все же попробуйте найти macOS Java dir.

/usr/lib/jvm/java-11-openjdk-amd64 — правильный каталог.

я отправляю приложение с mac на ubuntu в EC2

это отправка команды

 ./bin/spark-submit --master spark://15.xxx.42.xx:7077 
--deploy-mode cluster 
--class com.mysterico.TfIdf 
--driver-memory 2G 
--executor-memory 2G 
--driver-cores 1 
--executor-cores 2 
--num-executors 2 
/home/ubuntu/food-analytics-assembly-0.1.jar
 

Пожалуйста, помогите.

Комментарии:

1. обычно macOS устанавливает java в /Library/Java/JavaVirtualMachines. Кроме того, homebrew установит для вас JAVA_HOME… Но что это за ubuntu? Похоже, у вас здесь конфликтующие пути к файлам, потому что компьютер Ubuntu выдает ошибку, потому что /Library (путь к файловой системе macOS) не может быть найден

2. JAVA в Ubuntu — это /usr/lib/jvm/java-11-openjdk-amd64, но драйвер пытается найти неправильный путь, который является проблемой

3. Конечно, итак, как вы отправляете код? Драйвер запущен удаленно?

4. ДА. я отправляю приложение с mac на ubuntu, я только что загрузил команду, пожалуйста, проверьте

5. Все еще в замешательстве. Если вы отправляете данные с компьютера Mac, то у вас не будет пути к файлу /home/ubuntu на компьютере Mac…