使用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中文網其他相關文章!