簡體   English   中英

Spark-Java:在SparkLauncher中指定依賴罐

[英]Spark-Java : Specify dependency jars in SparkLauncher

我正在嘗試使用SparkLauncher運行火花作業。 我的spark應用程序jar不是胖jar,它取決於許多其他的3rd party jar,是否有辦法在SparkLauncher指定依賴關系jar?

使用addJar ,請參閱https://spark.apache.org/docs/latest/api/java/org/apache/spark/launcher/SparkLauncher.html#addJar(java.lang.String)

Process spark = new SparkLauncher()
            .addJar("/path/to/local/jar/file1.jar")
            .addJar("/path/to/local/jar/file2.jar")

在這種情況下,將分發jar文件。

或將它們添加到DRIVER_EXTRA_CLASSPATHEXECUTOR_EXTRA_CLASSPATH (但是依賴關系需要手動分發,或者需要位於每個工作人員都可以訪問的共享文件夾中)。

Process spark = new SparkLauncher()
            .setConf(SparkLauncher.DRIVER_EXTRA_CLASSPATH, "/path/to/jar/file.jar")
            .setConf(SparkLauncher.EXECUTOR_EXTRA_CLASSPATH, "/path/to/jar/file.jar")

您還可以通過在類路徑中包含所有文件來包含多個jar文件:

Process spark = new SparkLauncher()
            .setConf(SparkLauncher.DRIVER_EXTRA_CLASSPATH, "/path/to/jar/*")
            .setConf(SparkLauncher.EXECUTOR_EXTRA_CLASSPATH, "/path/to/jar/*")

當使用addJar方法添加多個jar時,我們看到一個問題,指出文件路徑不正確或文件名,目錄名或卷標簽語法不正確。 出現此問題的原因是sparklauncher內部調用spark-submit時,考慮到jar放在雙引號中且逗號之間有問題,因此存在問題。 當我將spark-submit2.cmd的內容復制到spark-submit.cmd的那一刻,以上問題就解決了,我們可以執行驅動程序了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM