es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema al ejecutar Spark submit en modo cluster de Yarn con archivo de configuración puesto en HDFS.

Tengo un programa Spark que necesita recibir un archivo de configuración como parámetro para el método principal. Actualmente, cuando envío el trabajo en modo de clúster de YARN, necesito colocar el archivo de configuración en todos los nodos de trabajo para que el programa pueda encontrarlo. Sin embargo, quiero colocarlo en una ruta de HDFS pero obtengo el error de archivo no encontrado. A continuación se muestra el comando que utilizo:

spark-submit --master yarn\
--name StreamingApp \
--deploy-mode cluster \
--class com.test.streaming.App \
--driver-java-options "-Djava.security.auth.login=/home/spark/auth.conf" \
--conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=/home/spark/auth.conf" \
--conf "spark.driver.extraJavaOptions=-Djava.security.auth.login.config=/home/spark/auth.conf" \
--conf "spark.driver.extraClassPath=/etc/hbase/conf/" \
/home/spark/StreamingFramework-0.0.1-SNAPSHTO-jar-with-dependencies.jar /home/spark/config.json

¿Cómo puedo colocar el último parámetro (/home/spark/config.json) en HDFS para que funcione?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para pasar un archivo de configuración en HDFS como parámetro en el modo de clúster de YARN, debes cambiar el último parámetro (/home/spark/config.json) por una ruta de HDFS, por ejemplo, /user/tunombredeusuario/config.json. Esta ruta de HDFS debe ser accesible para todos los nodos trabajadores.

    Aquí está el comando modificado:

    spark-submit --master yarn\
    --name StreamingApp \
    --deploy-mode cluster \
    --class com.test.streaming.App \
    --driver-java-options "-Djava.security.auth.login=/home/spark/auth.conf" \
    --conf "spark.executor.extraJavaOptions=-Djava.security.auth.login.config=/home/spark/auth.conf" \
    --conf "spark.driver.extraJavaOptions=-Djava.security.auth.login.config=/home/spark/auth.conf" \
    --conf "spark.driver.extraClassPath=/etc/hbase/conf/" \
    /home/spark/StreamingFramework-0.0.1-SNAPSHTO-jar-with-dependencies.jar hdfs://tu.namenode:8020/user/tunombredeusuario/config.json
    

    Asegúrate de reemplazar “tu.namenode” y “tunombredeusuario” por los valores correctos para tu clúster de Hadoop.

Comments are closed.