本地提交:
Local提交方式主要用於快速入門,開發階段測試。用該模式提交,開箱即用,不用啓動Spark的Master、Worker守護進程( 只有集羣的Standalone方式時,才需要這兩個角色),也不用啓動Hadoop的各服務(除非你要用到HDFS)
提交命令:
提交java
spark-submit --class com.WordCount --master local /usr/local/spark/bin/spark-test-1.0-SNAPSHOT.jar
提交python
spark-submit --master local /usr/local/spark-2.3.1-bin-hadoop2.7/examples/src/main/python/wordcount.py /usr/local/spark-2.3.1-bin-hadoop2.7/bin/word.txt
spark-submit --master -local
這個SparkSubmit進程又當爹、又當媽,既是客戶提交任務的Client進程、又是Spark的driver程序、還充當着Spark執行Task的Executor角色。
- 該模式被稱爲Local[N]模式,是用單機的多個線程來模擬Spark分佈式計算,直接運行在本地,便於調試,通常用來驗證開發出來的應用程序邏輯上有沒有問題。
- 其中N代表可以使用N個線程,每個線程擁有一個core。如果不指定N,則默認是1個線程(該線程有1個core)。
- 如果是local[*],則代表 Run Spark locally with as many worker threads as
logical cores on your machine.
Web-UI界面
想通過WebUI控制檯頁面來查看具體的job運行細節,正在運行時的任務可以通過訪問http:ip/4040(一旦任務結束,該端口將會自動關閉),有時需要查看歷史的job,這時需要用到spark-history-server.sh服務,操作如下:
1、修改spark-env.sh
進入spark安裝目錄下,找到spark-env.sh文件,在末尾添加
export **SPARK_HISTORY_OPTS**="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=/usr/local/spark/spark-events"
-
Dspark.history.ui.port:
默認值:18080 //HistoryServer的web端口 -
Dspark.history.retainedApplications
設置緩存Cache中保存的應用程序歷史記錄的個數,默認50,如果超過這個值,舊的將被刪除。 -
Dspark.history.fs.logDirectory
存放歷史記錄文件的目錄
2、修改spark-defauls.conf
默認不存在該文件,從spark-defauls.conf.teamplate拷貝一個,修改如下:
spark.eventLog.enabled true
spark.eventLog.dir /usr/local/spark/spark-events
-
spark.eventLog.enabled
是否記錄Spark事件,用於應用程序在完成後的籌夠WebUI。 -
spark.eventLog.dir
設置spark.eventLog.enabled爲true後,該屬性爲記錄spark時間的根目錄。在此根目錄中,Spark爲每個應用程序創建分目錄,並將應用程序的時間記錄到此目錄中。用戶可以將此屬性設置爲HDFS目錄,以便History Server讀取。
每個任務的歷史信息被保存在了該目錄下:
3、啓動spark-history-server.sh
在sbin目錄下,啓動spark-history-server.sh,然後訪問http:ip:18080/,效果如下:
參考:
Spark配置History服務
Spark運行模式_local(本地模式)
Spark入門 - History Server配置使用