Я пытаюсь запустить приложение Spark с помощью bin / spark-submit. Когда я ссылаюсь на свой jar-файл приложения внутри своей локальной файловой системы, он работает. Однако, когда я скопировал свою банку приложения в каталог в hdfs, я получил следующее исключение:
Предупреждение: пропустите удаленный jar-файл hdfs: // localhost: 9000 / user / hdfs / jars / simple-project-1.0-SNAPSHOT.jar. java.lang.ClassNotFoundException: com.example.SimpleApp
Вот команда:
$ ./bin/spark-submit --class com.example.SimpleApp --master local hdfs://localhost:9000/user/hdfs/jars/simple-project-1.0-SNAPSHOT.jar
Я использую hadoop версии 2.6.0, Spark версии 1.2.1
4 ответа
Единственный способ, которым это сработало для меня, когда я использовал
--мастер пряжа-кластер
Да, это должен быть локальный файл. Я думаю, это просто ответ.
Есть обходной путь. Вы можете смонтировать каталог в HDFS (который содержит jar-файл вашего приложения) как локальный каталог.
Я сделал то же самое (с хранилищем лазурных BLOB-объектов, но он должен быть похож на HDFS)
Пример команды для лазурного wasb
sudo mount -t cifs //{storageAccountName}.file.core.windows.net/{directoryName} {local directory path} -o vers=3.0,username={storageAccountName},password={storageAccountKey},dir_mode=0777,file_mode=0777
Теперь в своей команде отправки искры вы указываете путь из приведенной выше команды
$ ./bin/spark-submit --class com.example.SimpleApp --master local {local directory path}/simple-project-1.0-SNAPSHOT.jar
Чтобы сделать библиотеку HDFS доступной для искрового задания, вы должны запустить задание в кластерном режиме.
$SPARK_HOME/bin/spark-submit \
--deploy-mode cluster \
--class <main_class> \
--master yarn-cluster \
hdfs://myhost:8020/user/root/myjar.jar
Кроме того, существует Spark JIRA для клиентского режима, который еще не поддерживается.
SPARK-10643: поддержка загрузки приложения HDFS в клиентском режиме Spark submit
Похожие вопросы
Новые вопросы
hadoop
Hadoop - это проект с открытым исходным кодом Apache, который предоставляет программное обеспечение для надежных и масштабируемых распределенных вычислений. Ядро состоит из распределенной файловой системы (HDFS) и менеджера ресурсов (YARN). Различные другие проекты с открытым исходным кодом, такие как Apache Hive, используют Apache Hadoop в качестве слоя персистентности.