1:直接Spark-shellshell
會啓動一個SparkSubmit進程來模擬Spark運行環境,是一個單機版的。oop
2:Spark-shell --master Spark://hadoop1:7077,hadoop2:7077,hadoop3:7077 --total-executor-cores 5 --executor-memory 5G源碼分析
指定任務提交的集羣路徑在哪裏。這就須要提早啓動一個真實的Standalone集羣。spa
能夠指定多個master的地址,用逗號隔開。scala
若是沒有指定--total-executor-cores 5 --executor-memory 5G,那麼就會使用集羣中全部可用的資源,沒一個worker中都會啓動executor。orm
1/就初始化了一個SparkContext對象爲SC,而在這個對象的源碼中,對象
1.2/接着建立一個兩個Actor:ClientActor和DriverActor。進程
其中ClientActor就會根據剛剛的--master 來鏈接指定的集羣hadoop
在worker中會建立好那些運行程序的executor了。資源
2/同時也建立了一個SparkSQl對象,用於SparkSQl操做的。
3/最終會進入一個scala的交互界面中。
此時能夠寫經過RDD的transform和action的算子,最終經過action算子調用DAGSchudler對任務進行stage切分,而後經過TaskSchudler調用DriverActor將Stage下發到executor執行。
用來提交在IDEA中編寫而且打包成jar的包到集羣中運行。
具體的提交過程,請看Spark源碼分析的任務提交過程。
Spark-Submit --master spark://hadoop1:7077,hadoop2:7077 --executor-memory 5g --total-executor-cores 10 --class 主類路徑 jar包的路徑 文件的輸入路徑 文件的輸出路徑