Spark+Docker的集群模式

烈酒焚心 提交于 2019-11-28 20:58:14

Spark支持local、Standalone和Cluster三种并行运行模式【参考:Spark的三种运行模式快速入门】。

  • local,单机运行模式。
  • Standalone,Spark自己构建的独立集群。
  • Cluster,运行在Mesos/YARN/Kubernetes等集群环境中,从而可以让Spark与其他的应用协调资源。

参考:

Docker作为应用“集装箱”,提供了Swarm集群运行环境( 最新版为swarmkit,参考:Docker文档 ),也可以运行于Mesos/Kubernetes等集群环境中。

将Spark部署于Docker中,可以提供单机运行和手动的Standalone运行,也可以同时支持Swarm/Mesos/YARN/Kubernetes集群环境。

部署方式:

  • 1、需要将Spark分为Master和Slave两种部署模式,创建两类Spark容器(或者创建为一个通用容器,通过启动参数判断节点将启动为Master还是Slave模式)。

  • 2、通过启动参数环境变量将Spark启动参数传递进Docker。

  • 3、在容器启动时,设置Spark节点启动,并且Slave节点自动连接到Master节点。

理论上,可以在一个Docker中启动多个Spark节点,但这会带来管理和负载均衡的复杂性。

建议将每一个Spark节点配置为一个Docker,从而将负载均衡的事交给Docker上的集群环境去做。

通过OpenStack for Docker、Rancher和SuperMap CloudManager等虚拟机和容器管理系统都可以设置和启动一个Spark的Docker或虚拟机的集群。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!