Análisis del kernel de Spark (4) Análisis del principio de SparkContext

En Spark, SparkContext es responsable de comunicarse con el clúster, solicitar recursos y asignar y monitorear tareas. Una vez que el Ejecutor del nodo Trabajador termina de ejecutar la Tarea, el Controlador también es responsable de cerrar SparkContext.通常也可以使用 SparkContext 来代表驱动程序(Driver)。

La siguiente figura muestra el diagrama de flujo de la interacción entre SparkContext y el clúster:
Inserte la descripción de la imagen aquí
SparkContext 是用户通往 Spark 集群的唯一入口,可以用来在 Spark 集群中创建 RDD、累加器和广播变量。SparkContext también es un objeto vital en toda la aplicación Spark y se puede decir que es el núcleo de toda la programación de operaciones de la Aplicación (excluyendo la programación de recursos).

SparkContext 的核心作用是初始化 Spark 应用程序运行所需的核心组件, Incluyendo programación de alto nivel (DAGScheduler), programador de bajo nivel (TaskScheduler) y terminal de comunicación del programador (SchedulerBackend), y también responsable del registro de programas Spark en Cluster Manager.
Inserte la descripción de la imagen aquí
En el proceso de codificación real, primero crearemos una instancia de SparkConf y personalizaremos las propiedades de SparkConf, y luego pasaremos SparkConf como el único parámetro de construcción de la clase SparkContext para completar la creación del objeto de instancia de SparkContext.

SparkContext inicializa DAGScheduler, TaskScheduler y SchedulerBackend durante el proceso de creación de instancias. Cuando el operador de acción de RDD activa el trabajo, SparkContext llamará a DAGScheduler para dividir el trabajo en varias etapas pequeñas de acuerdo con el ancho y las dependencias estrechas. TaskScheduler Se programarán las tareas de cada etapa Además, SchedulerBackend es responsable de aplicar y administrar los recursos informáticos (es decir, el Ejecutor) asignados por el clúster para la Aplicación actual.

如果我们将 Spark Application 比作汽车,那么 SparkContext 就是汽车的引擎,而 SparkConf 就是引擎的配置参数。

La siguiente figura describe el proceso de interacción de los módulos internos ApplicationMaster, Driver y Executor durante la programación de tareas en el modo Spark-On-Yarn:
Inserte la descripción de la imagen aquí
Durante el proceso de inicialización del controlador SparkContext, DAGScheduler, TaskScheduler, SchedulerBackend y HeartbeatReceiver se inicializan respectivamente, y se inician SchedulerBackend y HeartbeatReceiver. SchedulerBackend 通过 ApplicationMaster 申请资源,并不断从 TaskScheduler 中拿到合适的 Task 分发到 Executor 执行。HeartbeatReceiver es responsable de recibir la información de los latidos del Executor, monitorear el estado de supervivencia del Executor y notificar a TaskScheduler.

Supongo que te gusta

Origin blog.csdn.net/weixin_43520450/article/details/108607599
Recomendado
Clasificación