1. 程式人生 > >Spark通過Jar包提交任務

Spark通過Jar包提交任務

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 變數找到.