簡體   English   中英

Spark Standalone集群模式在所有執行程序中都需要jar

[英]Spark Standalone cluster mode need jar in all executors

根據文檔,我正在使用帶有兩個節點的集群的Spark Standalone:

使用spark-submit時,應用程序jar以及--jars選項隨附的所有jar都會自動傳輸到集群。 --jars之后提供的URL必須用逗號分隔。 該列表包含在驅動程序和執行程序的類路徑中。 目錄擴展不適用於--jars。

我以為,當從兩台計算機之一執行spark-submit ,它將使使用--files選項和可執行jar傳遞的所有文件都進入spark集群。

相反,有時會失敗(我的意思是當選擇另一個節點作為主節點時),因為找不到文件,甚至更糟的是jar。 我必須通過群集(相同路徑)分發文件和jar。

注意:我使用本文檔中所述的內容設置了集群

NB2:在代碼中我得到的文件(星火上下文inizialized后)與方法SparkFiles.get

NB3:我使用的spark-sumbit命令或多或少是這樣的:

${SPARK_DIR}/bin/spark-submit --class ${CLASS_NAME} --files ${CONF_FILE},${HBASE_CONF_FILE} --master ${SPARK_MASTER} --deploy-mode cluster ${JAR_FILE}

這是預期的。 --jars--files是相對於驅動程序的。 因為您使用cluster模式,所以驅動程序可在任意執行程序節點上運行。 結果,每個執行者都需要訪問該文件。

暫無
暫無

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

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