Estoy tratando de ejecutar un programa spark donde tengo varios archivos jar, si yo sólo había un tarro que yo no soy capaz de ejecutar. Quiero añadir tanto los archivos jar que están en la misma ubicación. He probado los de abajo, pero muestra un error de dependencia

spark-submit \
  --class "max" maxjar.jar Book1.csv test \
  --driver-class-path /usr/lib/spark/assembly/lib/hive-common-0.13.1-cdh​5.3.0.jar

¿Cómo puedo añadir un archivo jar que está en el mismo directorio?

Quiero agregar /usr/lib/spark/assembly/lib/hive-serde.jar.

  • Bienvenido @avinash, para el próximo post os recomiendo yout para echar un vistazo a stackoverflow.com/editing-help
  • spark-submit [restofyouroptions] --conf "spark.driver.extraClassPath=myjarfile.jar"
  • múltiples archivos jar: "spark.driver.extraClassPath=/path/myjarfile1.jar:/path/myjarfile2.jar"

7 Comentarios

  1. 3

    Yo estaba tratando de conectar a mysql desde el código en python que se ejecuta utilizando spark-submit.

    Yo estaba usando HDP sandbox que estaba usando Ambari. Trató de gran cantidad de opciones, tales como --jars, --driver-class-path, etc, pero ninguno funcionó.

    Solución

    Copiar el jar en /usr/local/miniconda/lib/python2.7/site-packages/pyspark/jars/

    A partir de ahora no estoy seguro de si se trata de una solución o un truco rápido, pero ya estoy trabajando en POC por lo que el tipo de obras que para mí.

    • ¿por qué sugiere la eliminación de «¡Salud!» – preguntaba
    • meta.stackoverflow.com/q/288160/1434041 a pesar de que tiene más sentido para eliminar aquellos como parte de una edición más amplio.
  2. 29

    Solo uso el --jars parámetro. Chispa a compartir esos frascos (separados por comas) con los ejecutores.

    • he intentado separados por comas chispa presentar –clase «max» maxjar.jar Libro1.csv prueba /usr/lib/spark/assembly/lib/hive-common-0.13.1-cdh5.3.0.jar,hive-serde.jar . pero no lea ninguno de los frascos . Me sale este error org/apache/hadoop/colmena/conf/HiveConf
    • Quiero decir, lo utilizan como este: spark-presentar –maestro master_url –frascos jar1,jar2 –class classname application_jar
    • en realidad quiero agregar varios frascos en mi ruta de clases .yo no tengo acceso a la copia thejars en mi archivo de configuración regional así que estoy accediendo a los frascos a través de la ruta de clase
  3. 27

    Especificando la ruta de acceso completa para todos los frascos de obras.

    ./bin/spark-submit --class "SparkTest" --master local[*] --jars /fullpath/first.jar,/fullpath/second.jar /fullpath/your-program.jar
    

    O agregar los frascos en conf/spark-defaults.conf mediante la adición de líneas como:

    spark.driver.extraClassPath /fullpath/firs.jar:/fullpath/second.jar
    spark.executor.extraClassPath /fullpath/firs.jar:/fullpath/second.jar
    
  4. 12

    Puede utilizar * para importar todos los frascos en una carpeta en el momento de añadir conf/spark-defaults.conf .

    spark.driver.extraClassPath /fullpath/*
    spark.executor.extraClassPath /fullpath/*
    
    • Estás seguro? Conseguí «16/10/20 19:56:43 ERROR SparkContext: Jar no encontrado en el archivo:/root/.ivy2/frascos/*.jar»
    • A mí me funciona con chispa 1.5.2
    • Ruta de acceso relativa también funciona! Mi configuración es la «chispa.el controlador.extraClassPath lib/*» donde lib es un directorio bajo la chispa de la casa y todos la 3ª parte de los frascos están ahí.
  5. 3

    En la Chispa de la 2.3 que usted necesita para poner el –frascos opción. La ruta de acceso del archivo debe ser precedido con el esquema a pesar de que ie file:///<absolute path to the jars>
    Por ejemplo : file:////home/hadoop/spark/externaljsrs/* o file:////home/hadoop/spark/externaljars/abc.jar,file:////home/hadoop/spark/externaljars/def.jar

  6. 0

    Para mí –frascos opción siempre funciona, pero es demasiado detallado. Para ahorrar algo de escribir, puedes poner todos los frascos en un directorio decir ‘myJars’ y, a continuación, utilice este comando para enviar:

    spark-submit --master local[*] --jars "/path/to/myJars/*.jar"    --class <ClassName> <application_jar_name>.jar arg1 arg2
    
    • Deseo que esta trabajado, pero no para spark-submit
  7. 0

    Para --driver-class-path opción se puede utilizar : como delimitador para pasar varios frascos.
    A continuación es el ejemplo con spark-shell comando pero supongo que el mismo debe trabajar con spark-submit así

        spark-shell --driver-class-path /path/to/example.jar:/path/to/another.jar
    

    Spark versión: 2.2.0

Dejar respuesta

Please enter your comment!
Please enter your name here