Spark+Docker的集羣模式

Spark支持local、Standalone和Cluster三種並行運行模式【參考:Spark的三種運行模式快速入門】。docker

  • local,單機運行模式。
  • Standalone,Spark本身構建的獨立集羣。
  • Cluster,運行在Mesos/YARN/Kubernetes等集羣環境中,從而能夠讓Spark與其餘的應用協調資源。

參考:負載均衡

Docker做爲應用「集裝箱」,提供了Swarm集羣運行環境( 最新版爲swarmkit,參考:Docker文檔 ),也能夠運行於Mesos/Kubernetes等集羣環境中。oop

將Spark部署於Docker中,能夠提供單機運行和手動的Standalone運行,也能夠同時支持Swarm/Mesos/YARN/Kubernetes集羣環境。spa

部署方式:.net

  • 一、須要將Spark分爲Master和Slave兩種部署模式,建立兩類Spark容器(或者建立爲一個通用容器,經過啓動參數判斷節點將啓動爲Master仍是Slave模式)。blog

  • 二、經過啓動參數環境變量將Spark啓動參數傳遞進Docker。hadoop

  • 三、在容器啓動時,設置Spark節點啓動,而且Slave節點自動鏈接到Master節點。資源

理論上,能夠在一個Docker中啓動多個Spark節點,但這會帶來管理和負載均衡的複雜性。文檔

建議將每個Spark節點配置爲一個Docker,從而將負載均衡的事交給Docker上的集羣環境去作。部署

經過OpenStack for Docker、Rancher和SuperMap CloudManager等虛擬機和容器管理系統均可以設置和啓動一個Spark的Docker或虛擬機的集羣。

相關文章
相關標籤/搜索