[英]spark-submit in deploy mode client not reading all the jars
我正在嘗試通過spark-submit命令向我的spark集群(獨立模式)提交應用程序。 我正在關注官方的spark文檔 ,以及依賴於另一個 。 現在問題是我得到了奇怪的行為。 我的設置如下:
/home/myuser/jars
/home/myuser/jars
)中,稱為dat-test.jar
dat-test.jar
的入口點類位於包路徑my.package.path.Test
spark://master:7077
現在,我直接在主節點上提交應用程序,從而使用client
部署模式運行命令
./spark-submit --class my.package.path.Test --master spark://master:7077 --executor-memory 5G --total-executor-cores 10 /home/myuser/jars/*
我收到一個錯誤
java.lang.ClassNotFoundException: my.package.path.Test
如果我激活verbose
模式,我看到的是選擇為包含入口點的jar的primaryResource
是/home/myuser/jars/
的字母順序的第一個jar(不是dat-test.jar
),領先(I支持)到ClassNotFoundException
。 無論如何,同一目錄中的所有jar都作為參數加載。
當然,如果我跑
./spark-submit --class my.package.path.Test --master spark://master:7077 --executor-memory 5G --total-executor-cores 10 /home/myuser/jars/dat-test.jar
它找到Test
類,但它找不到其他jar中包含的其他類。 最后,如果我使用--jars
標志並運行
./spark-submit --class my.package.path.Test --master spark://master:7077 --executor-memory 5G --total-executor-cores 10 --jars /home/myuser/jars/* /home/myuser/jars/dat-test.jar
我獲得與第一個選項相同的結果。 /home/myuser/jars/
第一個jar作為primaryResource
加載,導致my.package.path.Test
ClassNotFoundException
。 如果我添加--jars /home/myuser/jars/*.jar
則相同。
重點是:
/home/myuser/jars/
中的/home/myuser/jars/
很多。 我想知道是否有辦法將它們全部包含在內而不是使用逗號分隔語法 --deploy-cluster
運行相同的命令,我不會收到錯誤,但由於其他一些原因計算失敗(但這是另一個問題)。 那么在客戶端模式下運行spark-submit的正確方法是什么? 謝謝
沒有辦法使用--jars選項包含所有jar,你必須創建一個小腳本來枚舉它們。 這部分有點次優。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.