天天看點

Standalone+ZooKeeper 高可用部署_3

開發者學堂課程【大資料實時計算架構 Spark 快速入門:Standalone+ZooKeeper 高可用部署_3】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/100/detail/1657

Standalone+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

Standalone+ZooKeeper 高可用部署_3
Standalone+ZooKeeper 高可用部署_3

點進 Application ID 可以看到如下圖内容:

Standalone+ZooKeeper 高可用部署_3

點進 Application Detall UI,看到以下内容:

Standalone+ZooKeeper 高可用部署_3

一個 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

送出應用程式,如下:

Standalone+ZooKeeper 高可用部署_3

發現結果沒有列印出來,也沒有日志。那麼看一下8080頁面:

Standalone+ZooKeeper 高可用部署_3

發現有一個 Running Drivers 驅動程式正在執行,重新整理一下頁面如下:

Standalone+ZooKeeper 高可用部署_3

發現 Application 來了,即用 Cluster 模式執行的時候,會有 Application 和 Running Drivers。當用 Cluster 叢集模式送出應用程式,會把 Drivers 驅動程式放到叢集裡面 worker 的某個節點去執行。

一個 Application 會對應一個 Driver:

Standalone+ZooKeeper 高可用部署_3

Client 模式,這裡 Client 指的是送出程式的用戶端,和 Driver 在同一個節點。

如果是 Cluster 模式,相當于 Driver 扔到 worker 裡面去執行。至于為什麼 Cluster 模式裡面在用戶端看不到結果,如上圖,因為 worker 節點會把執行的結果傳回給 Driver ,即 Cluster 模式的結果在 Driver 裡面,而 Driver 在 Worker 中的某個節點裡面。

再重新整理一下,看 Application 是否跑完程式,結果如下:

Standalone+ZooKeeper 高可用部署_3

發現 Application 執行完了,Driver 也就停掉了。

點選 Completed Drivers 下面的 Worker,結果如下:

Standalone+ZooKeeper 高可用部署_3

再點選 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 裡面:

Standalone+ZooKeeper 高可用部署_3