У меня было это сообщение об ошибке.Вероятно, у него может быть несколько основных причин, но вот как я исследовал и решил проблему (в linux):
- вместо запуска
spark-submit
, попробуйте использовать bash -x spark-submit
, чтобы увидеть, какая строка не работает. - выполняем этот процесс несколько раз (так как spark-submit вызывает вложенные скрипты), пока не найдете базовый процесс с именем: в моем случае что-то вроде:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -cp '/opt/spark-2.2.0-bin-hadoop2.7/conf/:/opt/spark-2.2.0-bin-hadoop2.7/jars/*' -Xmx1g org.apache.spark.deploy.SparkSubmit --class org.apache.spark.repl.Main --name 'Spark shell' spark-shell
Таким образом, spark-submit запускает процесс Java и не может найти класс org.apache.spark.launcher.Main, используя файлы в /opt/spark-2.2.0-bin-hadoop2.7/jars/*
(см. Параметр -cp выше).Я сделал ls в этой папке jars и сосчитал 4 файла вместо целого дистрибутива spark (~ 200 файлов).Вероятно, это была проблема в процессе установки.Поэтому я переустановил spark, проверил папку jar, и она заработала как шарм.
Итак, вам следует:
- проверить команду
java
(опция cp) - проверьте папку jars (содержит ли она хотя бы всю искру - *. Jar?)
Надеюсь, это поможет.