Spark-shell和Spark-Submit的使用

Spark-shell有兩種使用方式:

  • 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.1/就建立一個SparkENV對象,裏面建立一個SystemActor。
    • 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執行。

Spark-Submit的使用

  • 用來提交在IDEA中編寫而且打包成jar的包到集羣中運行。

  • 具體的提交過程,請看Spark源碼分析的任務提交過程。

    Spark-Submit --master spark://hadoop1:7077,hadoop2:7077 --executor-memory 5g --total-executor-cores 10 --class 主類路徑 jar包的路徑 文件的輸入路徑 文件的輸出路徑

相關文章
相關標籤/搜索