首頁  >  文章  >  Java  >  如何使用 Spark-Submit 將 JAR 檔案新增至 Spark 作業?

如何使用 Spark-Submit 將 JAR 檔案新增至 Spark 作業?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-16 17:41:03738瀏覽

How are JAR files added to a Spark job using Spark-Submit,  and what are the different options and considerations for doing so?

使用Spark-Submit 將JAR 檔案新增至Spark 作業

使用Spark-Submit 時,有多個選項可用於將JAR 檔案新增至Spark 作業,每個選項都包含它本身對類別路徑、檔案分佈和優先順序的影響。

ClassPath 效果

Spark-Submit 透過下列選項影響ClassPath:

  • spark.driver.extraClassPath 或--driver-class-path:為驅動程式節點指定額外的類路徑。
  • spark.executor.extraClassPath:為工作節點指定額外的類別路徑。

用於要包含的檔案在兩個 ClassPath 上,都需要在 both 標誌中指定。

檔案分佈

檔案分佈取決於執行模式:

  • 客戶端模式: Spark 透過HTTP 伺服器將檔案分發到工作節點。
  • 叢集模式: Spark 分發文件,您必須透過 HDFS 或其他共用儲存手動使它們可供所有工作節點使用。

接受的 URI 格式

Spark-Submit 支援以下 URI 前綴進行檔案分發:

  • file:: 由驅動程式 HTTP 伺服器提供服務。
  • hdfs:, http:, https:, ftp:: 從指定的 URI 拉取。
  • local:: 必須是每個工作節點上的本機檔案。

受影響的選項

問題中提到的選項影響JAR 檔案處理,如下所示:

  • --jars 和SparkContext.addJar :不將JAR 新增到ClassPaths 的等效選項。
  • SparkContext.addFile:用於不是執行時間依賴項的任意檔案。
  • --conf spark.driver.extraClassPath 或 - -driver-class-path:驅動程式類別路徑修改的別名。
  • --conf spark.driver.extraLibraryPath 或 --driver-library-path:驅動程式庫路徑的別名。
  • -- conf spark.executor.extraClassPath:用於無法包含在 über JAR 中的執行時間依賴項。
  • --conf spark.executor.extraLibraryPath:指定 JVM 的 java.library.path 選項。

優先權

直接在 SparkConf 上設定的屬性具有最高優先權,其次是 Spark-Submit 標誌,然後是 Spark-defaults.conf 中的選項。因此,程式碼中設定的任何值都將覆蓋相應的標誌或選項。

同時新增JAR 檔案

在客戶端模式下,可以安全地使用所有三個主要選項新增JAR 檔案:

但是,在叢集模式下,您應該只使用--jars 新增文件,並自行手動將它們分發到工作節點。應避免將 JAR 檔案傳遞給 --driver-library-path 等冗餘參數。

以上是如何使用 Spark-Submit 將 JAR 檔案新增至 Spark 作業?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn