Spark+Docker的集群模式

原创
2016/11/08 15:09
阅读数 876

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

展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部