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.

¿Se transfieren las variables de entorno de un controlador a los trabajadores?

Estoy utilizando Dataproc para ejecutar mis trabajos de pyspark. A continuación se presentan las tres formas en las que puedo enviar mis trabajos:

  1. Comando dataproc submit
  2. Utilidad spark-submit proporcionada por spark
  3. Para experimentos pequeños también puedo usar spark-shell

Ahora, tengo que modificar algunas variables de entorno. Por ejemplo, SPARK_HOME.

Para dataproc submit tengo opciones para modificar las variables de entorno por separado para el controlador y los trabajadores. Específicamente, puedo usar spark.executorEnv.[Nombre] para establecer variables de entorno en los trabajadores y spark.yarn.appMasterEnv.[NOMBRE] para establecer las variables de entorno del controlador.

Para la utilidad spark-submit y spark-shell, puedo enviar el trabajo de spark después de exportar las variables de entorno solo en el maestro. export $SPARK_HOME='ruta' y luego funciona correctamente.

Quiero entender qué hace spark internamente con las variables de entorno. ¿Las variables de entorno establecidas en los trabajadores son las mismas que las del maestro y solo se anulan si se establecen explícitamente en los nodos de los trabajadores? ¿Por qué necesitaríamos diferentes variables de entorno para el controlador y los trabajadores?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Spark permite a los usuarios configurar variables de entorno que se utilizan durante la ejecución de tareas. Estas variables de entorno se pueden configurar de forma diferente para el programa controlador y los nodos ejecutores.

    Cuando se utiliza el comando dataproc submit, se pueden configurar diferentes variables de entorno para el controlador y los trabajadores utilizando spark.yarn.appMasterEnv.[NOMBRE] y spark.executorEnv.[NOMBRE] respectivamente. Estas variables de entorno se configuran en el momento de la presentación del trabajo y se propagan a los nodos controlador y ejecutores.

    Cuando se utiliza la utilidad spark-submit y spark-shell, las variables de entorno se pueden configurar en el nodo maestro utilizando el comando export. Estas variables de entorno se heredan después por los nodos controlador y ejecutores.

    La razón de tener diferentes variables de entorno para el controlador y los trabajadores es que pueden tener requisitos diferentes. Por ejemplo, algunas variables de entorno pueden ser necesarias solo en el nodo controlador, mientras que otras pueden ser necesarias solo en los nodos ejecutores. La separación de las mismas permite un control más preciso sobre las variables de entorno.

    En general, si una variable de entorno está configurada tanto en el controlador como en los nodos ejecutores, la variable del nodo ejecutor tiene prioridad sobre la variable del nodo controlador.

Comments are closed.