Spark on yarn 提交應用的方式

Spark on yarn 提交應用的方式

通過spark-submit –help可以看到spark-submit的三種用法。
Usage: spark-submit [options] <app jar | python file> [app arguments]
2、根據job的id殺死某個job,僅支持在standalone和Mesos模式下使用
Usage: spark-submit --kill [submission ID] --master [spark://...]
3、查看某個job的狀態,僅支持在standalone和Mesos模式下使用
Usage: spark-submit --status [submission ID] --master [spark://...]

在spark on yarn模式下,僅使用第一種。提交job的常用選項及說明:

--master MASTER_URL
#指定spark應用的運行模式可選項包括spark://host:port, mesos://host:port, yarn, local.若以spark on yarn模式運行應用則需選擇yarn

--deploy-mode DEPLOY_MODE #設定部署應用的方式可選項有:client和cluster
在client模式下,driver進程會運行在本地,可以在程序運行中進行交互,一般在實驗環境中使用,也是默認的部署形式,spark-shell就是以這個模式運行的。
在cluster模式下,主節點會隨機選取一個slave節點啓動driver進程,不佔用master節點資源,適合在生產環境使用。

--class CLASS_NAME #指定jar包的main函數所在類(不寫後綴,適用於java和scala編寫的應用)。比如:com.foo.Main

--name NAME #可以爲你的應用在運行時指定一個個性化的名字,這樣在ui中就能很容易的找到你的程序啦,比如 –name myAppilication

--jars JARS #指定程序運行需要的額外的依賴jar包,比如:--jars /home/Hadoop/myjar.jar

--packages #以maven座標的形式引入jar依賴,座標之間以逗號分隔。會自動搜索本地maven倉庫、maven中央倉庫或者以 --repositories指定的其它遠程倉庫。座標的格式爲:groupId:artifactId:version.

--exclude-packages #以逗號分隔的groupId:artifactId,用來排除一些依賴,在解決依賴衝突時比較有用,一般作爲--packages 的修正使用。

--repositories #以逗號分隔的遠程maven倉庫列表,和--packages.配合使用。

--conf PROP=VALUE #指定Spark的配置屬性。
常用的屬性及配置如下:
--conf spark.storage.memoryFraction=0.1 #設置內存用來作爲cache的比例,0.1 爲10% (默認爲0.6),如果不用內存cache,設置爲0

--conf spark.hadoop.fs.hdfs.impl.disable.cache=true #禁止使用內存cache
--conf spark.default.parallelism=400 #控制Spark中的分佈式shuffle過程默認使用的task數量,默認Others: total number of cores on all executor nodes or 2, whichever is larger,我們建議爲每一個CPU核(core)分配2-3個任務
--conf spark.hadoop.mapreduce.input.fileinputformat.split.minsize=134217728 #調整split文件大小
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" #打印gc信息,在應用調優時比較有用
其它配置可以在spark的官網查閱:
http://spark.apache.org/docs/latest/configuration.html

--properties-file FILE #可以將屬性配置寫到一個文本中用這個選項加載,默認加載的是conf/spark-defaults.conf.
這裏要注意:
Spark的配置屬性優先級爲:--conf配置的屬性>-- properties-file指定的配置文件中的屬性>conf/spark-defaults.conf。優先級高的屬性會覆蓋優先級低的。

--driver-memory MEM #配置driver的最大使用內存,一般爲2g-8g,默認1g,不宜太大

--driver-java-options #用於添加一些Java虛擬機參數,比如:

--executor-memory MEM #分配給每個executor的內存量默認1g,一般不要超過30g.

--verbose, -v #打印額外的debug 輸出


--version, #打印Spark版本號

--executor-cores NUM
#設置單個executor能併發執行task數,根據job設置,推薦值2-16 (這裏不是指CPU數,集羣不限制CPU使用)默認爲1

--num-executors NUM
#設置executor的數量,默認啓動2個.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章