Gläser zu einem Spark-Job hinzufügen - spark-submit

True ... es wurde schon viel diskutiert.

Allerdings gibt es viele Unklarheiten und einige der bereitgestellten Antworten ... einschließlich des Duplizierens von JAR-Referenzen in der JAR- / Executor- / Treiberkonfiguration oder in den Optionen.

Die mehrdeutigen und / oder weggelassenen Details

Folgende Unklarheiten, Unklarheiten und / oder ausgelassene Details sollten für jede Option geklärt werden:

Wie ClassPath betroffen istTreibeExecutor (für laufende Aufgaben)Beidüberhaupt nich Trennzeichen: Komma, Doppelpunkt, SemikolonWenn bereitgestellte Dateien automatisch verteilt werdenfür die Aufgaben (an jeden Executor)für den Remote-Treiber (falls im Cluster-Modus ausgeführt) URI-Typ akzeptiert: lokale Datei, hdfs, http, etcWenn kopierti ein allgemeiner Ort, an dem sich dieser Ort befindet (hdfs, local?) Die Optionen, auf die es sich auswirkt:--jarsSparkContext.addJar(...) MethodSparkContext.addFile(...) Method--conf spark.driver.extraClassPath=... oder--driver-class-path ...--conf spark.driver.extraLibraryPath=..., oder--driver-library-path ...--conf spark.executor.extraClassPath=...--conf spark.executor.extraLibraryPath=...nicht zu vergessen, der letzte Parameter des Spark-Submit ist ebenfalls eine .jar-Datei.

Ich weiß, wo ich das @ finden kaHauptfunkendokumentation und speziell überwie einreichen, dasOptione verfügbar, und auch das JavaDoc. Allerdings hat das für mich noch einige Löcher hinterlassen, obwohl es teilweise auch geantwortet hat.

ch hoffe, dass es nicht allzu komplex ist und dass mir jemand eine klare und präzise Antwort geben kan

Wenn ich aus der Dokumentation schätze, scheint es, dass--jars, und dieSparkContext addJar undaddFile -Methoden sind diejenigen, die Dateien automatisch verteilen, während die anderen Optionen lediglich den Klassenpfad ändern.

Wäre es sicher anzunehmen, dass ich der Einfachheit halber mithilfe der drei Hauptoptionen gleichzeitig zusätzliche Anwendungs-JAR-Dateien hinzufügen kann:

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

Fand einen schönen Artikel aufeine Antwort auf ein anderes Posting. Allerdings nichts neues gelernt. Das Poster macht eine gute Bemerkung zum Unterschied zwischen lokalem Treiber (Garn-Client) und entferntem Treiber (Garn-Cluster). Auf jeden Fall wichtig zu beachten.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage