Spark-shell和Spark-Submit的使用


Spark-shell有兩種使用方式:

  • 1:直接Spark-shell

    會啟動一個SparkSubmit進程來模擬Spark運行環境,是一個單機版的。

  • 2:Spark-shell --master Spark://hadoop1:7077,hadoop2:7077,hadoop3:7077 --total-executor-cores 5 --executor-memory 5G

    指定任務提交的集群路徑在哪里。這就需要提前啟動一個真實的Standalone集群。

    可以指定多個master的地址,用逗號隔開。

    如果沒有指定--total-executor-cores 5 --executor-memory 5G,那么就會使用集群中所有可用的資源,沒一個worker中都會啟動executor。

不管哪種方式,只要啟動完成后。

  • 1/就初始化了一個SparkContext對象為SC,而在這個對象的源碼中,

    • 1.1/就創建一個SparkENV對象,里面創建一個SystemActor。
    • 1.2/接着創建一個兩個Actor:ClientActor和DriverActor。

      其中ClientActor就會根據剛剛的--master 來連接指定的集群

      在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包的路徑 文件的輸入路徑 文件的輸出路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM