1. 程式人生 > >Spark四種執行模式

Spark四種執行模式

轉載: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]