Articles

Apprenez SparkContext – Introduction et fonctions

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

Objective

SparkContext est la porte d’entrée de la fonctionnalité Apache Spark. L’étape la plus importante de toute application de pilote Spark est de générer SparkContext. Il permet à votre application Spark d’accéder au cluster Spark à l’aide du gestionnaire de ressources (YARN/Mesos). Pour créer SparkContext, il faut d’abord créer SparkConf. Le SparkConf a un paramètre de configuration que notre application de pilote Spark transmettra à SparkContext.
Dans ce tutoriel Apache Spark, nous comprendrons en profondeur ce qu’est SparkContext dans Spark. Comment créer une classe SparkContext dans Spark à l’aide du programme Spark-Scala word count. Nous allons également apprendre diverses tâches de SparkContext et comment arrêter SparkContext dans Apache Spark.

Alors, commençons le tutoriel SparkContext.

Apprenez SparkContext - Introduction et fonctions

Apprenez SparkContext – Introduction et fonctions

Apprenez à installer Apache Spark en mode autonome et à installer Apache Spark dans un cluster multi-nœuds.

Qu’est-ce que SparkContext dans Apache Spark ?

SparkContext est le point d’entrée de la fonctionnalité Spark. L’étape la plus importante de toute application de pilote Spark est de générer SparkContext. Il permet à votre application Spark d’accéder au cluster Spark à l’aide du Gestionnaire de ressources. Le gestionnaire de ressources peut être l’un de ces trois – Spark Standalone, YARN, Apache Mesos.

Comment créer une classe SparkContext ?

Si vous souhaitez créer SparkContext, vous devez d’abord créer SparkConf. Le SparkConf a un paramètre de configuration que notre application de pilote Spark transmettra à SparkContext. Certains de ces paramètres définissent les propriétés de l’application de pilote Spark. Alors que certains sont utilisés par Spark pour allouer des ressources sur le cluster, comme le nombre, la taille de la mémoire et les cœurs utilisés par l’exécuteur s’exécutant sur les nœuds de travail.
En bref, il guide comment accéder au cluster Spark. Après la création d’un objet SparkContext, nous pouvons invoquer des fonctions telles que textFile, sequenceFile, parallelize, etc. Les différents contextes dans lesquels il peut s’exécuter sont local, yarn-client, Mesos URL et Spark URL.
Une fois le SparkContext créé, il peut être utilisé pour créer des RDD, des variables de diffusion et des accumulateurs, le service d’entrée Spark et exécuter des tâches. Toutes ces choses peuvent être effectuées jusqu’à ce que SparkContext soit arrêté.

Arrêt de SparkContext

Un seul SparkContext peut être actif par JVM. Vous devez arrêter l’actif avant d’en créer un nouveau comme ci-dessous:
stop(): Unité
Il affichera le message suivant:
INFO SparkContext: SparkContext arrêté avec succès

Exemple de comptage de mots Scala Spark

Voyons comment créer SparkContext en utilisant SparkConf à l’aide de Spark – Exemple de comptage de mots Scala –

package com.dataflair.spark
import org.Apache.étincelle.SparkContext
import org.Apache.étincelle.Vous pouvez créer un objet de conf
val conf = new SparkConf()
.setAppName(« WordCount »)
//create spark context object
val sc = new SparkContext(conf)
//Check whether sufficient params are supplied
if (args.length < 2) {
println(« Usage: ScalaWordCount <input><output> »)
System.exit(1)
}
//Read file and create RDD
val rawData = sc.textFile(args(0))
//convert the lines into words using flatMap operation
val words = rawData.flatMap(line => line.split(«  »))
// comptez les mots individuels en utilisant l’opération map et reduceByKey
val wordCount=words.map(word=>(word, 1)).reduceByKey(_+_)
// Enregistre le résultat
wordCount.saveAsTextFile(args(1))
// arrête le contexte spark
sc.stop
}
}

Fonctions de SparkContext dans Apache Spark

10 Fonctions importantes de SparkContext dans Apache Spark

10 Fonctions importantes de SparkContext dans Apache Spark

i. Pour obtenir l’état actuel de l’application Spark

  • SpkEnv – C’est un environnement d’exécution avec les services publics de Spark. Il interagit les uns avec les autres pour établir une plate-forme informatique distribuée pour l’application Spark. Un objet SparkEnv qui contient les services d’exécution requis pour exécuter l’application Spark avec l’environnement différent du pilote et de l’exécuteur représente l’environnement d’exécution Spark.
  • SparkConf – Les propriétés Spark gèrent les paramètres maximum des applications et sont configurées séparément pour chaque application. Nous pouvons également facilement définir ces propriétés sur un SparkConf. Certaines propriétés courantes telles que l’URL principale et le nom de l’application, ainsi qu’une paire clé-valeur arbitraire, configurées via la méthode set().
  • Environnement de déploiement (en tant qu’URL principale) – Les environnements de déploiement Spark sont de deux types, à savoir local et en cluster. Le mode local est un mode de déploiement JVM unique non distribué. Tous les composants d’exécution – driver, executor, LocalSchedulerBackend et master sont présents dans la même JVM unique. Par conséquent, le seul mode où les pilotes sont utiles pour l’exécution est le mode local. À des fins de test, de débogage ou de démonstration, le mode local convient car il ne nécessite aucune configuration antérieure pour lancer l’application spark. En mode cluster, l’étincelle s’exécute en mode distributif. Apprenez le gestionnaire de cluster Spark en détail.

ii. Pour définir la configuration

  • URL principale – La méthode principale renvoie la valeur actuelle de spark.maître qui est l’environnement de déploiement utilisé.
  • Propriétés locales – Création de groupes de tâches logiques – La raison du concept de propriétés locales est de former des groupes logiques de tâches au moyen de propriétés qui créent le travail séparé lancé à partir de différents threads appartiennent à un seul groupe logique. Nous pouvons définir une propriété locale qui affectera les travaux Spark soumis à partir d’un thread, tels que le pool de planificateurs Spark fair.
  • Niveau de journalisation par défaut – Il vous permet de définir le niveau de connexion racine dans une application Spark, par exemple, Spark Shell.

iii. Pour accéder à divers services

Il aide également à accéder à des services tels que TaskScheduler, LiveListenBus, BlockManager, SchedulerBackend, ShuffelManager et le ContextCleaner facultatif.

iv. Pour annuler une tâche

cancleJob demande simplement à DAGScheduler de supprimer une tâche Spark.
En savoir plus sur Spark DAG (Graphe acyclique dirigé) en détail.

v. Pour annuler une étape

cancleStage demande simplement à DAGScheduler de supprimer une étape Spark.

vi. Pour le nettoyage de la fermeture dans Spark

Spark nettoie la fermeture chaque fois qu’une action se produit, c’est-à-dire le corps d’action avant qu’il ne soit sérialisé et envoyé sur le fil pour être exécuté. La méthode clean dans SparkContext le fait. Ceci, à son tour, appelle ClosureClean.méthode propre. Il nettoie non seulement la fermeture, mais la fermeture référencée est également propre de manière transitive. Il suppose sérialisable jusqu’à ce qu’il ne fasse pas explicitement référence aux objets non sérialisables.

vii. Pour enregistrer Spark listener

Nous pouvons enregistrer un SparkListenerInterface personnalisé à l’aide de la méthode addSparkListener. Nous pouvons également enregistrer des écouteurs personnalisés à l’aide de spark.Réglage extraListeners.

viii. Allocation dynamique programmable

Il fournit également la méthode suivante en tant qu’API de développement pour l’allocation dynamique des exécuteurs : requestExecutors, killExecutors, requestTotalExecutors, getExecutorIds.

ix. Pour accéder au RDD persistant

getPersistentRDDs donne la collection de RDD qui se sont marqués comme persistants via le cache.

x. Pour unpersist RDDs

À partir du gestionnaire de blocs maître et du mappage interne persistentRdds, le unpersist supprime le RDD.

Donc, tout cela était dans le tutoriel Sparkcontext. J’espère que vous aimez notre explication.

Conclusion

Par conséquent, SparkContext fournit les différentes fonctions dans Spark comme obtenir l’état actuel de l’application Spark, définir la configuration, annuler un travail, Annuler une étape et bien plus encore. C’est un point d’entrée vers la fonctionnalité Spark. Ainsi, il agit comme une colonne vertébrale.
Si vous avez des questions sur ce tutoriel, n’hésitez pas à partager avec nous. Nous serons heureux de les résoudre.
Voir Aussi –

  • Façons de Créer RDD dans Spark
  • Compatibilité Apache Spark avec Hadoop