spark-submit 是用於提交Spark應用到叢集的命令列工具。它允許使用者控制Spark應用的各種引數,比如應用名、叢集URL、執行模式、資源分配等。
以下是一些常用的 spark-submit 引數:
--master: 指定Spark叢集的URL,例如 local, local[*], spark://23.195.26.187:7077, yarn, mesos 等。
--deploy-mode: 指定是以client模式執行,還是以cluster模式執行。在client模式下,驅動程式執行在提交應用的機器上;在cluster模式下,驅動程式在叢集中的某個節點上執行。
--class: 指定包含主函式的入口類。
--name: 指定Spark應用的名稱。
--conf: 設定Spark配置屬性,如 --conf spark.executor.memory=4g。
--driver-memory: 指定驅動程式的記憶體大小,如 --driver-memory 4g。
--executor-memory: 指定每個executor的記憶體大小,如 --executor-memory 4g。
--total-executor-cores: 指定叢集中總共使用的CPU核心數,如 --total-executor-cores 8。
示例程式碼:
spark-submit \
--master spark://23.195.26.187:7077 \
--deploy-mode cluster \
--conf spark.executor.memory=4g \
--conf spark.cores.max=8 \
--name "MySparkApp" \
--class com.example.MySparkApp \
/path/to/your/sparkapp.jar \
arg1 arg2 arg3
在這個例子中,我們提交了一個名為 MySparkApp 的應用到指定的Spark叢集。應用的入口類是 com.example.MySparkApp,位於 /path/to/your/sparkapp.jar。最後的 arg1 arg2 arg3 是傳遞給應用的引數。