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