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 :
- Propriétés SparkConf définies directement dans le code
- Drapeaux transmis à spark-submit
- 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
Copier après la connexion
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!