Exécuteur Apache Spark pour Exécuter des Tâches Spark

Restez à jour avec les dernières tendances technologiques
Rejoignez DataFlair sur Telegram!!

Objective

Dans Apache Spark, un agent distribué est responsable de l’exécution des tâches, cet agent est ce que nous appelons l’exécuteur Spark. Ce document vise l’ensemble du concept d’Apache Spark Executor. En outre, nous verrons la méthode pour créer une instance d’exécuteur dans Spark. Pour en savoir plus, nous verrons également la méthode de tâche de lancement dans Spark Executor.

 Exécuteur Apache Spark pour l'Exécution des Tâches Spark

Exécuteur Apache Spark pour l’Exécution des Tâches Spark

Vous devez tester votre apprentissage Spark

Qu’est-ce que l’exécuteur Spark

Fondamentalement, nous pouvons dire que les exécuteurs dans Spark sont des nœuds de travail. Ceux-ci aident à traiter en charge de l’exécution de tâches individuelles dans un travail Spark donné. De plus, nous les lançons au début d’une application Spark. Ensuite, il s’exécute généralement pendant toute la durée de vie d’une application. Dès qu’ils ont exécuté la tâche, envoie les résultats au pilote. Les exécuteurs fournissent également un stockage en mémoire pour les RDD Spark qui sont mis en cache par les programmes utilisateur via le gestionnaire de blocs.
De plus, pendant toute la durée de vie d’une application spark, elle s’exécute. Cela déduit l’allocation statique de Spark executor. Cependant, nous pouvons également préférer l’allocation dynamique.
De plus, à l’aide du Thread Heartbeat Sender, il envoie des métriques et des battements de cœur. Un des avantages que nous pouvons avoir autant d’exécuteurs dans Spark que de nœuds de données. De plus, il est également possible d’avoir autant de cœurs que vous pouvez obtenir du cluster. L’autre façon de décrire Apache Spark Executor est soit par son id, son nom d’hôte, son environnement (comme SparkEnv) ou son chemin de classe.
Le point le plus important à noter est que les backends d’exécuteur gèrent exclusivement l’exécuteur dans Spark.

Jetez un coup d’œil aux meilleures certifications Spark

 Gestionnaire de messages heartbeat receiver - Exécuteur Spark

Gestionnaire de messages Heartbeat Receiver – Exécuteur Spark

Conditions pour créer un Exécuteur Spark

Certaines conditions dans lesquelles nous créons un exécuteur dans Spark sont:

  1. Lorsque CoarseGrainedExecutorBackend reçoit le message RegisteredExecutor. Uniquement pour Spark Standalone et YARN.
  2. Alors que le MesosExecutorBackend de Mesos s’est enregistré sur Spark.
  3. Lorsque LocalEndpoint est créé pour le mode local.

Création d’une instance d’exécuteur Spark

En utilisant ce qui suit, nous pouvons créer l’exécuteur Spark:

  1. De l’identifiant de L’exécuteur.
  2. En utilisant SparkEnv, nous pouvons accéder au MetricsSystem local ainsi qu’au BlockManager. De plus, nous pouvons également accéder au sérialiseur local par celui-ci.
  3. Du nom d’hôte de l’exécuteur.
  4. Pour ajouter au chemin de classe des tâches, une collection de fichiers JAR définis par l’utilisateur. Par défaut, il est vide.
  5. Par indicateur s’il s’exécute en mode local ou en mode cluster (désactivé par défaut, c’est-à-dire que le cluster est préféré)

Vous devez lire Spark SQL Features

De plus, lorsque la création est réussie, les messages one INFO apparaissent dans les journaux. C’est—à-dire:
Exécuteur d’INFORMATIONS: Démarrage de l’ID de l’exécuteur sur l’hôte

Heartbeater – Thread d’expéditeur de battements de cœur

Fondamentalement, avec un seul thread, heartbeater est un démon ScheduledThreadPoolExecutor.
Nous appelons ce pool de threads un pilote – heartbeater.

Lancer la tâche – Méthode launchTask

En utilisant cette méthode, nous exécutons simultanément la tâche serializedTask d’entrée.

 Spark Executor - Lancement de Tâches sur l'Exécuteur à l'aide de TaskRunners

Spark Executor – Lancement de Tâches sur l’Exécuteur à l’aide de TaskRunners

Révisons l’algorithme d’Apprentissage automatique Spark

launchTask(context: ExecutorBackend,taskId: Long,attemptNumber: Int,taskName: String,serializedTask: ByteBuffer): Unit

De plus, en utilisant launchTask, nous utilisons pour créer un TaskRunner, en interne. Ensuite, avec l’aide de taskId, nous l’enregistrons dans le registre interne de runningTasks. Ensuite, nous l’exécutons sur le pool de threads « Executor task Launch worker ».

Pool de threads « Executor Task Launch Worker » – Propriété ThreadPool

Fondamentalement, Pour lancer, par id de travailleur de lancement de tâche. Il utilise un pool de threads mis en cache par le démon threadPool. De plus, en même temps que la création de Spark Executor, threadPool est créé. En outre, l’arrête quand il s’arrête.

Vous devez lire sur le streaming structuré dans SparkR

Conclusion

En conséquence, nous avons vu, tout le concept d’exécuteurs dans Apache Spark. De plus, nous avons également appris à quel point les exécuteurs Spark sont utiles pour exécuter des tâches. Le principal avantage que nous avons appris est que nous pouvons avoir autant d’exécuteurs que nous voulons. Par conséquent, les exécuteurs aident à améliorer les performances Spark du système. Nous avons couvert chaque aspect de l’exécuteur Apache Spark ci-dessus. Cependant, si une requête se produit, n’hésitez pas à demander dans la section des commentaires.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.