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或虚拟机的集群。

相关文章
相关标签/搜索