Spark aprendizaje de 0 a 1 (3) -Parámetros de envío de Apache Spark y análisis de código fuente de programación de recursos

1. Parámetros de envío de Spark-Submit

nombre del parámetro Valor de parámetro
-Maestro spark: // host: puerto; mesos: // host: puerto, yarn; yarn-cluster, yarn-clint; local
–Modo de implementación El lugar donde se ejecuta el programa Driver, cliente o clúster, el valor predeterminado es cliente
-clase Nombre de la clase principal
-frascos La coma separa los archivos jar locales, paquetes de terceros de los que dependen el controlador y el ejecutor
–Archivos Se colocará una lista de archivos separados por comas en cada directorio de trabajo del ejecutor
–Conf Propiedades de configuración de Spark
–Controlador-memoria El programa del controlador usa el tamaño de la memoria (por ejemplo: 520M, 2G), el valor predeterminado es 1024M
–Ejecutor-memoria El tamaño de la memoria de cada ejecutor (por ejemplo: 2G), el valor predeterminado es 1G
–Driver-cores El programa del controlador usa el número de núcleos (predeterminado 1), que se limita al modo de clúster de Spark independiente
-supervisar Si reiniciar el controlador después de una falla. Limitado a grupos de chispas independientes o Mesos
–Colores-totales-ejecutores El número total de núcleos utilizados por el ejecutor se limita a SparkStandalone y Spark en el modo Mesos
–Colores-ejecutores El número de núcleos utilizados por cada ejecutor, chispa en hilo tiene un valor predeterminado de 1 y el valor predeterminado independiente para todos los núcleos disponibles en el trabajador.
Solo hilo
–Driver-cores El núcleo que usa el controlador está solo en modo de clúster y el valor predeterminado es 1.
-cola Especifique el nombre de la cola de recursos, predeterminado: predeterminado
–Num-ejecutores El número total de ejecutores iniciados, 2 por defecto.

2. Análisis del código fuente de la programación de recursos

2.1 Diagrama simple de solicitud de recursos

Inserte la descripción de la imagen aquí

  1. Ejecute ./start-all.sh para iniciar el clúster.
  2. Una vez iniciado el nodo maestro, se comunica con el nodo trabajador a través de ssh.
  3. Los nodos trabajadores se registran en el nodo maestro a la inversa.
  4. El nodo maestro encapsula la información del nodo trabajador en HashSet[WorkerInfo]una workerscolección de tipos .
  5. El cliente a través del spark-submitmando tipo misión.
  6. Solicitud para iniciar un controlador desde el nodo maestro.
  7. El nodo maestro encapsula un ArrBuffer[DriverInfo]tipo waitingDriver(controlador en espera de ser ejecutado).
  8. El nodo maestro selecciona un nodo para iniciar el controlador.
  9. El controlador solicita al maestro los recursos para la aplicación actual.
  10. El nodo principal encapsula los recursos de la aplicación en el controlador.
  11. El controlador envía tareas al nodo Trabajador para su ejecución.

2.2 Ruta maestra de programación de recursos

CLASS="org.apache.spark.deploy.master.Master"

2.3 Enviar solicitud, enviar ruta

org.apache.spark.deploy.SparkSubmit

2.4 Resumen

  1. El ejecutor se inicia de forma distribuida en el clúster, lo que favorece la localización de los datos de cálculo de la tarea.
  2. De forma predeterminada (no se establecen --executor-coresopciones al enviar una tarea ), cada trabajador inicia un ejecutor para la aplicación actual. Este Ejecutor utilizará todos los núcleos y la memoria 1G de este Trabajador.
  3. Si desea iniciar varios Ejecutores en el Trabajador, debe agregar --executor-coresesta opción al enviar la Solicitud .
  4. No hay una configuración predeterminada --total-executor-cores, una aplicación usará todos los núcleos en el clúster Spark.

2.5 Presentación de conclusiones

Utilice Spark-submit para enviar una demostración de tareas.

  1. De forma predeterminada, cada trabajador inicia un ejecutor para la aplicación actual. Este Ejecutor usa todos los núcleos y la memoria 1G del clúster.

    ./spark-submit 
    --master spark://masterNode:7077 
    --class org.apache.spark.examples.SparkPi
    ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar
    1000
    
  2. Inicie varios ejecutores en el trabajador y establezca los --executor-coresparámetros para especificar el número de núcleos utilizados por el ejecutor.

    ./spark-submit
    --master spark://masterNode:7077
    --executor-cores 1
    --class org.apache.spark.examples.SparkPi
    ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar
    1000
    
  3. El núcleo se inicia con memoria insuficiente. Cuando se inicia Spark, no solo los parámetros de configuración del núcleo, sino también si la memoria del núcleo configurada es suficiente.

    ./spark-submit
    --master spark://masterNode:7077
    --executor-cores 1
    --executor-memory 3g
    --class org.apache.spark.examples.SparkPi
    ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar
    1000
    
  4. --total-executor-coresCuántos núcleos se utilizan en el clúster.

    Nota: varios nodos del clúster no pueden iniciar un proceso.

    ./spark-submit
    --master spark://masterNode:7077
    --executor-cores 1
    --executor-memory 3g
    --total-executor-cores 3
    --class org.apache.spark.examples.SparkPi
    ../lib/spark-exeamples-1.6.0-hadoop2.6.0.jar
    1000
    

Supongo que te gusta

Origin blog.csdn.net/dwjf321/article/details/109047999
Recomendado
Clasificación