Maison >Java >javaDidacticiel >Comment ajouter des fichiers JAR aux tâches Spark avec Spark-submit ?

Comment ajouter des fichiers JAR aux tâches Spark avec Spark-submit ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-15 00:25:02982parcourir

How to Add JAR Files to Spark Jobs with spark-submit?

Ajout de fichiers JAR aux tâches Spark avec spark-submit

Détails ambigus

Les détails suivants n'étaient pas clairs ou omis auparavant dans la documentation :

  • ClassPath : --driver-class-path et --conf spark.driver.extraClassPath affectent le chemin de classe du pilote, tandis que --conf spark.executor.extraClassPath affecte le chemin de classe de l'exécuteur.
  • Caractère de séparation : Linux utilise deux points (:), tandis que Windows utilise un point-virgule (;).
  • Distribution :

    • Mode client : les JAR sont distribués via HTTP par un serveur sur le nœud Pilote.
    • Mode cluster : les JAR doivent être mis manuellement à la disposition des nœuds Worker via HDFS ou similaire.
  • URI : Le schéma "file:/" est servi par le serveur HTTP du pilote, tandis que "hdfs", "http", "ftp" extraient les fichiers directement à partir de l'URI. "local :/" suppose que les fichiers se trouvent déjà sur chaque nœud Worker.
  • Emplacement du fichier : Les fichiers JAR sont copiés dans le répertoire de travail de chaque nœud Worker (généralement /var/run/spark/work ).

Options concernées

Options prioritaires du plus haut au plus bas :

  1. Propriétés SparkConf définies directement dans le code
  2. Drapeaux transmis à spark-submit
  3. Options dans spark-defaults.conf

Options Analyse

  • --jars vs SparkContext.addJar : Ceux-ci sont équivalents pour l'ajout de dépendances JAR.
  • SparkContext.addJar vs SparkContext. addFile : addJar pour les dépendances, addFile pour arbitraire fichiers.
  • Options DriverClassPath : --driver-class-path et --conf spark.driver.extraClassPath sont des alias.
  • Options DriverLibraryPath : --driver-library-path et --conf spark.driver.extraLibraryPath sont alias, représentant java.library.path.
  • Executor ClassPath : --conf spark.executor.extraClassPath pour les dépendances.
  • Chemin de la bibliothèque de l'exécuteur : --conf spark.executor.extraLibraryPath pour la bibliothèque JVM chemin.

Pratique sûre pour l'ajout de fichiers JAR

Pour plus de simplicité en mode Client, il est sûr d'utiliser les trois options principales ensemble :

spark-submit --jars additional1.jar,additional2.jar \
  --driver-class-path additional1.jar:additional2.jar \
  --conf spark.executor.extraClassPath=additional1.jar:additional2.jar \
  --class MyClass main-application.jar

En mode Cluster, les JAR externes doivent être ajoutés manuellement aux nœuds Worker via HDFS.

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!

Déclaration:
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