Maison > Java > javaDidacticiel > Comment puis-je gérer efficacement les dépendances pour éviter les erreurs dans les applications Apache Spark ?

Comment puis-je gérer efficacement les dépendances pour éviter les erreurs dans les applications Apache Spark ?

Mary-Kate Olsen
Libérer: 2024-12-19 19:50:23
original
839 Les gens l'ont consulté

How Can I Effectively Manage Dependencies to Avoid Errors in Apache Spark Applications?

Résoudre les problèmes de dépendance dans Apache Spark

Les applications Apache Spark rencontrent généralement des problèmes liés aux dépendances lors de la création et du déploiement. Ces problèmes incluent java.lang.ClassNotFoundException, l'objet x n'est pas membre des erreurs de compilation du package y et java.lang.NoSuchMethodError.

Chemin de classe dynamique et gestion des dépendances

Le chemin de classe de Spark, qui est construit dynamiquement pour s'adapter au code utilisateur, peut conduire à ces problèmes. De plus, le gestionnaire de cluster spécifique (maître) employé introduit d'autres considérations.

Composants et placement des classes

Une application Spark comprend les composants suivants :

  • Pilote : initialise l'application et se connecte au gestionnaire de cluster.
  • Gestionnaire de cluster : facilite la ressource et distribue le travail aux exécuteurs.
  • Exécuteurs : exécutez des tâches Spark sur les nœuds du cluster.

L'emplacement de classe de chaque composant est illustré ci-dessous :

< ;img src="https://i.sstatic.net/eGByZ.png" alt="Placement de classe Présentation">

Distribution du code

Comprendre les exigences de placement en classe permet une distribution appropriée du code entre les composants :

  • Code Spark : Comprend les bibliothèques requises par tous les composants et doit être disponible dans tous trois.
  • Code du pilote uniquement : Code utilisateur qui ne nécessite pas de distribution aux exécuteurs testamentaires.
  • Code distribué : Code utilisateur qui doit être exécuté sur les exécuteurs testamentaires et doit leur être expédié.

Gestion des dépendances dans différents clusters Gestionnaires

Autonome :

  • Exige que tous les pilotes utilisent la même version Spark que le maître et les exécuteurs.

FILS / Mesos :

  • Permet différents Versions Spark pour chaque application.
  • La version du pilote doit correspondre à la version utilisée lors de la compilation et de l'empaquetage.
  • Les dépendances Spark, y compris les dépendances transitives, doivent être incluses dans les fichiers jar/archive distribués.

Approche suggérée utilisant YARN

Pour minimiser les problèmes de dépendance, considérez les approche suivante :

  • Créez une bibliothèque avec du code distribué à la fois sous forme de pot standard et de gros pot.
  • Créez une application pilote avec des dépendances sur la bibliothèque de code distribuée et Apache Spark (spécifique version).
  • Emballez l'application du pilote sous forme de gros pot.
  • Utilisez le paramètre spark.jars pour spécifier le code distribué. version.
  • Utilisez le paramètre spark.yarn.archive pour fournir un fichier d'archive contenant les binaires Spark.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal