Spark通過Jar包提交任務
阿新 • • 發佈:2018-12-30
Standalone
需要通過bin/spark-submit來提交
必需引數 --class --master舉例如下:
引數說明:/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://master01:7077 \ --executor-memory 1G \ --total-executor-cores 2 \ /home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/examples/jars/spark- examples_2.11-2.1.1.jar \ 100
--master spark://master01:7077 指定 Master 的地址
--executor-memory 1G 指定每個 executor 可用記憶體為 1G
--total-executor-cores 2 指定每個 executor 使用的 cup 核數為 2 個
該演算法是利用蒙特·卡羅演算法求 PI
yarn
/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode client \ /home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/examples/jars/spark- examples_2.11-2.1.1.jar \ 100
一旦打包好,就可以使用 bin/spark-submit 指令碼啟動應用了. 這個指令碼負責設定 spark 使用的 classpath 和依賴,支援不同型別的叢集管理器和釋出模式
一些常用選項:
1) --class: 你的應用的啟動類 (如 org.apache.spark.examples.SparkPi)
2) --master: 叢集的 master URL (如 spark://23.195.26.187:7077)
3) --deploy-mode: 是否釋出你的驅動到 worker 節點(cluster) 或者作為一個本地客戶端 (client) (default: client)*
4) --conf: 任意的 Spark 配置屬性, 格式 key=value. 如果值包含空格,可以加引號“key=value”. 預設的 Spark 配置
5) application-jar: 打包好的應用 jar,包含依賴. 這個 URL 在叢集中全域性可見。比如 hdfs:// 共享儲存系統, 如果是 file:// path, 那麼所有的節點的 path都包含同樣的 jar.
6) application-arguments: 傳給 main()方法的引數:
檢視 Spark-submit 全部引數
所有的提交方式
local | 本地以一個 worker 執行緒執行(例如非並行的情況). |
local[k] | 本地以 K worker 執行緒 (理想情況下, K 設定為你機器的 CPU 核數). |
local[*] | 本地以本機同樣核數的執行緒執行. |
spark://HOST:PORT | 連線到指定的 Spark standalone cluster master. 埠是你的 master 叢集配置的埠,預設值為 7077. |
mesos://HOST:PORT | 連線到指定的 Mesos 叢集. Port 是你配置的 mesos 埠, 預設是 5050. 或者如果 Mesos 使用 ZOoKeeper,格式為 mesos://zk://.... |
yarn-client | 以 client 模式連線到 YARN cluster. 叢集的位置基於HADOOP_CONF_DIR 變數找到. |
yarn-cluster | 以 cluster 模式連線到 YARN cluster. 叢集的位置基於HADOOP_CONF_DIR 變數找到. |