2016-01-11 25 views
4

讀到這裏question,我想問其他問題:瞭解星火:羣集管理器,主機和驅動器節點

  1. 羣集管理器是一個長期運行的服務,在哪個節點正在運行?
  2. Master和Driver節點可能是同一臺機器嗎?我認爲在某個地方應該有一個規則說明這兩個節點應該不同?
  3. 如果Driver節點失敗,誰負責重新啓動應用程序?以及究竟會發生什麼?即主節點,集羣管理器和工作人員節點將如何參與(如果他們這樣做)以及以何種順序?
  4. 類似於上一個問題:如果主節點發生故障,會發生什麼情況,誰負責從故障中恢復?

回答

6

羣集管理器是一個長期運行的服務,在哪個節點正在運行?

羣集管理器是Spark獨立模式主過程。它可以在./sbin/start-master.sh的任何地方啓動,在YARN它將是資源管理器。

Master和Driver節點可能是同一臺機器嗎?我認爲在某個地方應該有一個規則說明這兩個節點應該不同?

Master是每個羣集和Driver是每個應用程序。對於獨立/紗線羣集,Spark目前支持兩種部署模式。

  1. 在客戶端模式下,驅動程序在相同的工藝提交申請客戶推出。
  2. 在羣集模式,然而,對於獨立駕駛員從工人的一個推出紗線應用主節點內部,並且在客戶端進程,只要其滿足它的責任退出提交申請而無需等待申請完成。

如果在主節點與--deploy-mode client提交了一份申請,都主機和驅動器將在同一節點上。檢查deployment of Spark application over YARN

櫃面其中驅動器節點出現故障,誰負責重新啓動應用程序?以及究竟會發生什麼?即主節點,集羣管理器和工作人員節點將如何參與(如果他們這樣做)以及以何種順序?

如果驅動程序無法所有執行人任務會被終止用於提交/觸發火花的應用。

當主節點發生故障時,會發生什麼情況,誰負責從故障中恢復?

主節點故障有兩種處理方式。

  1. 備ZooKeeper的大師:

    利用動物園管理員提供地區領導人選舉和一些州的存儲, 您可以連接到相同的 ZooKeeper的實例集羣啓動多個碩士學位。一個將被選爲「領導者」,其他人將保持待機模式。如果當前領導者死亡,另一位主人將被選中,恢復老主人的狀態,然後恢復 調度。整個恢復過程(從第一個 領導者倒下的時間)應該需要1到2分鐘。請注意,此延遲僅影響調度新應用程序 - 已在主服務器故障切換期間運行的應用程序不受影響。 check here for configurations

  2. 單節點故障恢復與本地文件系統:

    動物園管理員是去生產水平高 可用性的最佳方式,但如果你只是希望能夠重新啓動主機如果 它關閉,FILESYSTEM模式可以處理它。當應用程序 和Workers註冊時,它們有足夠的狀態寫入所提供的 目錄,以便在主進程重新啓動時恢復它們。 check here for conf and more details

4

羣集管理器是一個長期運行的服務,在哪個節點正在運行?

集羣管理器只是SchedulerBackends用來啓動任務的資源(即CPU和RAM)的管理器。 集羣管理器沒有爲Apache Spark做任何事情,但提供資源,一旦Spark執行器啓動,他們直接與驅動程序通信以運行任務。

你可以通過執行啓動一個獨立的主服務器:

./sbin/start-master.sh 

可以在任何地方開始。

要運行星火集羣

./bin/spark-shell --master spark://IP:PORT 

上的應用程序有沒有可能是法師和驅動程序的節點將在同一臺機器? 我認爲應該有一個規則說明這兩個節點應該不同?

在獨立模式下,當您啓動機器時,某些JVM將啓動。您的SparK Master將啓動,並且在每臺機器上,Worker JVM將啓動並且它們將向Spark Master註冊。 兩者都是資源管理器。當您啓動您的應用程序或以集羣模式提交您的應用程序時,無論您在何處ssh啓動該應用程序,驅動程序都會啓動。 驅動程序JVM將聯繫SparK Master執行程序(Ex),並在獨立模式下工作人員將啓動Ex。 因此,Spark Master是每個羣集的驅動程序JVM是每個應用程序。

如果Driver節點失敗,誰負責重新啓動應用程序?以及究竟會發生什麼? 即主節點,羣集管理器和工作者節點將如何涉及(如果他們這樣做)以及以何種順序?

如果Ex JVM會崩潰Worker JVM將啓動Ex,並且當Worker JVM崩潰時Spark Master將啓動它們。 並與羣集中部署模式星火獨立的集羣,你還可以指定--supervise,以確保驅動程序自動重新啓動,如果它失敗,非零退出code.Spark法師將啓動Driver JVM

類似於上一個問題:如果主節點發生故障, 究竟會發生什麼情況,以及誰負責從故障中恢復?

如果在主服務器上失敗,將導致執行程序無法與其通信。所以,他們會停止工作。主人失敗會使司機無法與其溝通工作狀態。所以,你的應用程序將會失敗。 主流損失將被正在運行的應用程序所認可,但除此之外,這些應該會繼續或多或少地發生,除非出現兩個重要的例外:

1.應用程序無法以優雅的方式完成。

2.if Spark Master is down工人將嘗試重新註冊WithMaster。如果多次失敗,工人就會放棄。

reregisterWithMaster() - 重新註冊此工作人員與之通信的活動主人。如果沒有,那麼這意味着這個工人仍然是自舉,並且還沒有與主人建立聯繫,在這種情況下,我們應該重新註冊所有主人。 與failures.worker期間活動的主只能重新註冊是非常重要的無條件試圖與所有的主機重新註冊, 將可能出現種族condition.Error火花4592詳細介紹:

此時長時間運行應用程序將無法繼續處理,但仍不會立即失敗。 相反,應用程序將等待主服務器返回聯機(文件系統恢復)或來自新領導者(Zookeeper模式)的聯繫人,如果發生這種情況,它將繼續處理。