[英]ResourceNotFoundException: for spark-java and velocity
[英]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_CLASSPATH
和EXECUTOR_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.