spark-shell
是spark
自帶的互動式
shell
程式,方便使用者進行互動式程式設計,使用者可以在該命令列下可以用scala編寫spark程式,適合學習測試時使用!
●示例spark-shell可以攜帶引數
spark-shell --master local[n] 數字n表示在本地模擬n個執行緒來執行當前任務
spark-shell --master local[*] *表示使用當前機器上所有可用的資源
預設不攜帶引數就是--master local[*]
spark-shell --master spark://node01:7077,node02:7077 表示執行在集群上
spark-submit
命令用來提交
jar包給
spark
集群/yarn
spark-shell互動式程式設計確實很方便我們進行學習測試,但是在實際中我們一般是使用idea開發spark應用程式打成jar包交給spark集群/yarn去執行。
spark-submit命令是我們開發時常用的!!!
示例:計算π
cd /export/servers/spark
/export/servers/spark/bin/spark-submit \
--class org.apache.spark.examples.sparkpi \
--master spark://node01:7077 \
--executor-memory 1g \
--total-executor-cores 2 \
/export/servers/spark/examples/jars/spark-examples_2.11-2.2.0.jar \
10●master引數形式
master形式 解釋
local
本地以乙個worker執行緒執行(例如非並行的情況).
local[n]
本地以k worker 執行緒 (理想情況下, n設定為你機器的cpu核數).
local[*]
本地以本機同樣核數的執行緒執行.
spark://host:port
連線到指定的spark standalone cluster master. 埠是你的master集群配置的埠,預設值為7077.
mesos://host:port
連線到指定的mesos 集群. port是你配置的mesos埠, 預設5050. 或者使用zk,格式為 mesos://zk://....
yarn-client
以client模式連線到yarn cluster. 集群的位置基於hadoop_conf_dir 變數找到.
yarn-cluster
以cluster模式連線到yarn cluster. 集群的位置基於hadoop_conf_dir 變數找到.
其他引數示例
--master spark://node01:7077 指定 master 的位址
--class 程式的main方法所在的類
--jars xx.jar 程式額外使用的 jar 包
--driver-memory 512m driver執行所需要的記憶體, 預設1g
--executor-memory 2g 指定每個 executor 可用記憶體為 2g, 預設1g
--executor-cores 1 指定每乙個 executor 可用的核數
--total-executor-cores 2 指定整個集群執行任務使用的 cup 核數為 2 個
--queue default 指定任務的對列
--deploy-mode 指定執行模式(client/cluster)
●注意:
如果 worker 節點的記憶體不足,那麼在啟動 spark-submit的時候,就不能為 executor分配超出 worker 可用的記憶體容量。
如果--executor-cores超過了每個 worker 可用的 cores,任務處於等待狀態。
如果--total-executor-cores即使超過可用的 cores,預設使用所有的。以後當集群其他的資源釋放之後,就會被該程式所使用。
如果記憶體或單個 executor 的 cores 不足,啟動 spark-submit 就會報錯,任務處於等待狀態,不能正常執行。
Spark 效能相關引數配置詳解 Storage篇
隨著spark的逐漸成熟完善,越來越多的可配置引數被新增到spark中來,本文試圖通過闡述這其中部分引數的工作原理和配置思路,和大家一起 一下如何根據實際場合對spark進行配置優化。由於篇幅較長,所以在這裡分篇組織,如果要看最新完整的網頁版內容,可以戳這裡 主要是便於更新內容 storage相關配...
Spark運算元詳解
目錄 spark常用運算元詳解 3.getnumpartitions 4.partitions 5.foreachpartition 6.coalesce 7.repartition 8.union,zip,join 9.zipwithindex,zipwithuniqueid 未完待續.本文主要介...
spark 任務詳解
以下是我對spark任務提交的理解 1 將我們編寫的程式打成jar包 2 呼叫spark submit指令碼提交任務到集群上執行 3 執行sparksubmit的main方法,在這個方法中通過反射的方式建立我們編寫的主類的例項物件,然後呼叫main方法,開始執行我們的 注意,我們的spark程式中的...