Spark部署模式分为Local模式(本地单机模式)和集群模式,在Local模式下,常用于本地开发程序与测试,而集群模式又分为Standalone模式(集群单机模式)、Yarn模式和Mesos模式,关于这三种集群模式的相关介绍具体如下:
Standalone模式被称为集群单机模式。Spark框架与Hadoop1.0版本框架类似,本身都自带了完整的资源调度管理服务,可以独立部署到一个集群中,无需依赖任何其他的资源管理系统,在该模式下,Spark集群架构为主从模式,即一台Master节点与多台Slave节点,Slave节点启动的进程名称为Worker,此时集群会存在单点故障问题,后续将在Spark HA集群部署小节讲解利用Zookeeper解决单点问题的方案。
Yarn模式被称为Spark on Yarn模式,即把Spark作为一个客户端,将作业提交给Yarn服务,由于在生产环境中,很多时候都要与Hadoop使用同一个集群,因此采用Yarn来管理资源调度,可以有效提高资源利用率,Yarn模式又分为Yarn Cluster模式和Yarn Client模式,具体介绍如下:
lYarn Cluster:用于生产环境,所有的资源调度和计算都在集群上运行。
lYarn Client:用于交互、调试环境。
Mesos模式被称为Spark on Mesos模式,Mesos与Yarn同样是一款资源调度管理系统,可以为Spark提供服务,由于Spark与Mesos存在密切的关系,因此在设计Spark框架时充分考虑到了对Mesos的集成,但如果你同时运行Hadoop和Spark,从 兼 容 性 的 角 度 来 看 ,Spark on Yarn是更好的选择。
上述三种分布式部署方案各有利弊,通常需要根据实际情况决定采用哪种方案。