開發者學堂課程【大資料實時計算架構 Spark 快速入門:Standalone+ZooKeeper 高可用部署_3】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/100/detail/1657Standalone+ZooKeeper 高可用部署_3
内容簡介:
1. standalone 叢集模式之 client 模式
2. standalone 叢集模式之 cluster 模式
3. High Availability
一、standalone 叢集模式:
需要的配置項
1)slaves 檔案
node22
node23
node24
2)spark-env.sh
export JAVA_HOME=/usr/soft/ jdk1.7.0_71
export SPARK_MASTER_IP=spark001
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g
./sbin/start-all.sh
--master 等價于 setMaster
點進 Application ID 可以看到如下圖内容:
點進 Application Detall UI,看到以下内容:
一個 Application 可以根據 active 算子操作被切分為多個 job。Scheduling Mode排程模式,這裡預設的是先進先出模式。
對于日志:
Pi is roughly 3.141582368
16/11/29 15:42:36 INFO SparkUI :stopped spark web UI at
http://192.168. 80.21:4040結果列印出來之後,即 application 運作完了以後就會把4040關閉。
1.standalone 叢集模式之 client 模式
結果 xshell 可見:
./bin/ spark- submit --class org . apache . spark . examples . sparkPi - -master spark://spark001: 7077 -- executor -memory 1G --total -executor-cores 1 ./lib/spark-examples-1.6.0-hadoop2.4.0.jar 100
2.standalone 叢集模式之 cluster 模式
結果 spark001:8080裡面可見!
./bin/ spark- submit --class org . apache .spark . examples . sparkPi --master spark://spark001: 7077 --deploy-mode cluster --supervise --executor-memory 1G --total -executor-cores
1 ./lib/spark-examples-1.6.0-hadoop2.4.0.jar 100
送出應用程式,如下:
發現結果沒有列印出來,也沒有日志。那麼看一下8080頁面:
發現有一個 Running Drivers 驅動程式正在執行,重新整理一下頁面如下:
發現 Application 來了,即用 Cluster 模式執行的時候,會有 Application 和 Running Drivers。當用 Cluster 叢集模式送出應用程式,會把 Drivers 驅動程式放到叢集裡面 worker 的某個節點去執行。
一個 Application 會對應一個 Driver:
Client 模式,這裡 Client 指的是送出程式的用戶端,和 Driver 在同一個節點。
如果是 Cluster 模式,相當于 Driver 扔到 worker 裡面去執行。至于為什麼 Cluster 模式裡面在用戶端看不到結果,如上圖,因為 worker 節點會把執行的結果傳回給 Driver ,即 Cluster 模式的結果在 Driver 裡面,而 Driver 在 Worker 中的某個節點裡面。
再重新整理一下,看 Application 是否跑完程式,結果如下:
發現 Application 執行完了,Driver 也就停掉了。
點選 Completed Drivers 下面的 Worker,結果如下:
再點選 Finished Drivers 下的 Stdout,在這裡會列印出結果,
而日志被放在了 stderr 裡面。
3.High Availability
1)Standby Masters with ZooKeeper (熱備)
2)Single-Node Recovery with Local File System (冷備)
熱備,就是 Master 挂了,另外一個會自動來接管。
冷備,就是 Master 如果挂了,需要手動把另一個啟動,讓它去讀 Local File System 裡面的資訊。
點到 Standby Masters with ZooKeeper 裡面: