start spark manager cluster hadoop apache-spark hdfs

hadoop - manager - Spark-submit no funciona cuando el jar de la aplicación está en hdfs



spark submit verbose (4)

Estoy intentando ejecutar una aplicación de chispa usando bin / spark-submit. Cuando hago referencia a mi jar de aplicación dentro de mi sistema de archivos local, funciona. Sin embargo, cuando copié mi jar de aplicación a un directorio en hdfs, recibo la siguiente excepción:

Advertencia: Omita el jar remoto hdfs: // localhost: 9000 / user / hdfs / jars / simple-project-1.0-SNAPSHOT.jar. java.lang.ClassNotFoundException: com.example.SimpleApp

Aquí está el comando:

$ ./bin/spark-submit --class com.example.SimpleApp --master local hdfs://localhost:9000/user/hdfs/jars/simple-project-1.0-SNAPSHOT.jar

Estoy usando la versión 2.6.0 de hadoop, la versión de chispa 1.2.1


Hay una solución. Puede montar el directorio en HDFS (que contiene su jar de aplicación) como directorio local.

Hice lo mismo (con almacenamiento de blobs azul, pero debería ser similar para HDFS)

comando de ejemplo para azur 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

Ahora, en su comando de chispa de envío, usted proporciona la ruta desde el comando anterior

$ ./bin/spark-submit --class com.example.SimpleApp --master local {local directory path}/simple-project-1.0-SNAPSHOT.jar


La única forma en que funcionó para mí, cuando estaba usando

--master yarn-cluster


Para que la biblioteca HDFS pueda acceder al chispaje, debe ejecutar el trabajo en el modo de clúster.

$SPARK_HOME/bin/spark-submit / --deploy-mode cluster / --class <main_class> / --master yarn-cluster / hdfs://myhost:8020/user/root/myjar.jar

Además, existe Spark JIRA planteado para el modo cliente que aún no es compatible.

this : Admite la descarga de la aplicación HDFS en modo de cliente chispa enviar


Sí, tiene que ser un archivo local. Creo que esa es simplemente la respuesta.