Spark四種執行模式
阿新 • • 發佈:2019-02-03
轉載:http://blog.cheyo.net/29.html
介紹
- 本地模式
Spark單機執行,一般用於開發測試。
- Standalone模式
構建一個由Master+Slave構成的Spark叢集,Spark執行在叢集中。
- Spark on Yarn模式
Spark客戶端直接連線Yarn。不需要額外構建Spark叢集。
- Spark on Mesos模式
Spark客戶端直接連線Mesos。不需要額外構建Spark叢集。
啟動方式: spark-shell.sh(Scala)
spark-shell通過不同的引數控制採用何種模式進行。 涉及兩個引數:
1 2 3 4 |
--master MASTER_URL spark://host:port, mesos://host:port, yarn, or local. --deploy-mode DEPLOY_MODE Whether to launch the driver program locally ("client") or on one of the worker machines inside the cluster ("cluster") (Default: client) |
–master引數用於指定採用哪種執行模式。
對於Spark on Yarn模式和Spark on Mesos模式還可以通過 –deploy-mode引數控制Drivers程式的啟動位置。
- 進入本地模式:
./spark-shell --master local
./spark-shell --master local[2] # 本地執行,兩個worker執行緒,理想狀態下為本地CPU core數
- 進入Standalone模式:
./spark-shell --master spark://192.168.1.10:7077
備註:測試發現MASTER_URL中使用主機名替代IP地址無法正常連線(hosts中有相關解析記錄),即以下命令連線不成功:
./spark-shell --master spark://ctrl:7077 # 連線失敗
- Spark on Yarn模式
1 2 3 4 5 6 7 |
./spark-shell --master yarn ./spark-shell --master yarn-client #不支援這種模式 #./spark-shell --master yarn-cluster ./spark-shell --master yarn --deploy-mode client #不支援這種模式 #./spark-shell --master yarn --deploy-mode cluster |
備註:Yarn的連線資訊在Hadoop客戶端的配置檔案中指定。通過spark-env.sh中的環境變數HADOOPCONFDIR指定Hadoop配置檔案路徑。
- Spark on Mesos模式:
./spark-shell --master mesos://host:port
./spark-shell --master mesos://host:port --deploy-mode client
./spark-shell --master mesos://host:port --deploy-mode cluster
啟動方式: pyspark(Python)
引數及用法與Scala語言的spark-shell相同,比如:
pyspark --master local[2]