Résoudre les problèmes de dépendance dans Apache Spark avec l'évolutivité et le placement optimisé des classes
Apache Spark est un puissant framework informatique distribué largement utilisé pour le traitement du Big Data . Cependant, la création et le déploiement d'applications Spark peuvent parfois rencontrer des problèmes de dépendance qui entravent la fonctionnalité.
Problèmes de dépendance courants dans Spark :
- java.lang.ClassNotFoundException
- l'objet x n'est pas membre de la compilation du package y erreurs
- java.lang.NoSuchMethodError
Cause et résolution :
La création dynamique de chemin de classe d'Apache Spark peut contribuer aux problèmes de dépendance. Pour résoudre ceux-ci, il est essentiel de comprendre le concept des composants de l'application Spark :
-
Pilote : Application utilisateur chargée de créer une SparkSession et de se connecter au gestionnaire de cluster.
-
Cluster Manager : Point d'entrée au cluster, allouant des exécuteurs pour les applications (Standalone, YARN, Mesos).
-
Exécuteurs : Processus exécutant des tâches Spark réelles sur les nœuds du cluster.
Optimisation du placement des classes :
-
Code Spark : Les bibliothèques Spark doivent être présentes dans TOUS les composants pour faciliter communication.
-
Code pilote uniquement : Code utilisateur qui n'utilise pas de ressources sur les exécuteurs.
-
Code distribué : Code utilisateur utilisé dans les transformations sur RDD / DataFrame / Dataset.
Gestion des dépendances basée sur le cluster Gestionnaire :
Autonome :
- Tous les pilotes doivent utiliser la même version Spark exécutée sur le maître et les exécuteurs.
FILS / Mesos :
- Les applications peuvent utiliser différents Versions Spark, mais les composants d'une application doivent utiliser la même version.
- Fournissez la version correcte lors du démarrage de SparkSession et envoyez les fichiers jar nécessaires aux exécuteurs via le paramètre spark.jars.
Meilleures pratiques de déploiement :
- Emballez le code distribué sous la forme d'un « gros pot » avec tous dépendances.
- Emballez l'application du pilote sous forme de gros pot.
- Démarrez SparkSession avec la version correcte du code distribué à l'aide de spark.jars.
- Fournissez un fichier d'archive Spark contenant tous les fichiers jar nécessaires. en utilisant spark.yarn.archive (en mode YARN).
En suivant ces directives, les développeurs peuvent résoudre efficacement les dépendances problèmes dans Apache Spark et garantir un placement optimal des classes pour une exécution efficace et évolutive des applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!