Hinzufügen von JAR-Dateien zu Spark-Jobs mit spark-submit
Mehrdeutige Details
Die folgenden Details waren bisher unklar oder wurden weggelassen in der Dokumentation:
-
ClassPath: --driver-class-path und --conf spark.driver.extraClassPath wirken sich auf den Klassenpfad des Treibers aus, während --conf spark.executor.extraClassPath den Klassenpfad des Executors beeinflusst.
-
Trennzeichen: Linux verwendet einen Doppelpunkt (:), während Windows ein Semikolon verwendet (;).
-
Verteilung:
- Client-Modus: JARs werden über HTTP von einem Server auf dem Treiberknoten verteilt.
- Cluster-Modus: JARs müssen Worker-Knoten manuell über HDFS oder zur Verfügung gestellt werden ähnlich.
-
URIs: Das Schema „file:/“ wird vom Treiber-HTTP-Server bereitgestellt, während „hdfs“, „http“ und „ftp“ Dateien abrufen direkt aus der URI. „local:/“ geht davon aus, dass sich Dateien bereits auf jedem Worker-Knoten befinden.
-
Dateispeicherort: JARs werden in das Arbeitsverzeichnis auf jedem Worker-Knoten kopiert (normalerweise /var/run/spark/work ).
Betroffene Optionen
Optionen mit Vorrang von vom höchsten zum niedrigsten Wert:
- SparkConf-Eigenschaften werden direkt im Code festgelegt
- Flags, die an spark-submit übergeben werden
- Optionen in spark-defaults.conf
Option Analyse
-
--jars vs. SparkContext.addJar: Diese entsprechen dem Hinzufügen von JAR-Abhängigkeiten.
-
SparkContext.addJar vs. SparkContext. addFile: addJar für Abhängigkeiten, addFile für beliebige Dateien.
-
DriverClassPath-Optionen: --driver-class-path und --conf spark.driver.extraClassPath sind Aliase.
-
DriverLibraryPath-Optionen: --driver-library-path und --conf spark.driver.extraLibraryPath sind Aliase, die java.library.path darstellen.
-
Executor-Klassenpfad: --conf spark.executor.extraClassPath für Abhängigkeiten.
-
Executor-Bibliothekspfad: --conf spark.executor.extraLibraryPath für die JVM-Bibliothek Pfad.
Sichere Vorgehensweise beim Hinzufügen von JAR-Dateien
Der Einfachheit halber ist es im Client-Modus sicher, alle drei Hauptoptionen zusammen zu verwenden:
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
Nach dem Login kopieren
Im Cluster-Modus sollten externe JARs manuell über HDFS zu Worker-Knoten hinzugefügt werden.
Das obige ist der detaillierte Inhalt vonWie füge ich mit Spark-Submit JAR-Dateien zu Spark-Jobs hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!