Spark注重建立良好的生态系统,它不仅支持多种外部文件存储系统,提供了多种多样的集群运行模式。

Spark部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当Spark以分布式集群部署的时候,可以根据自己集群的实际情况选择Standalone模式(Spark自带的模式)、Spark on YARN模式或者Spark on mesos模式。

Spark的各种运行模式虽然在启动方式、运行位置、调度策略上各有不同,但它们的目的基本都是一致的,就是在合适的位置安全可靠的根据用户的配置和Job的需要运行和管理Task。

1、Spark Local模式

Spark Local模式被称为Local[N]模式,是用单机的多个线程来模拟Spark分布式计算,直接运行在本地,便于调试,通常用来验证开发出来的应用程序逻辑上有没有问题,其中N代表可以使用N个线程,每个线程拥有一个core。如果不指定N,则默认是1个线程(该线程有1个core),如果是local[*],则代表 Run Spark locally with as many worker threads as logical cores on your machine.即运行的线程数与CPU的核数一样。通常,Local模式用于完成开发出来的分布式程序的测试工作,并不用于实际生产。

2、Spark Standalone模式

Standalone模式是Spark实现的资源调度框架,其自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。Standalone 集群有四个重要组成部分,分别是:

Driver:是一个进程,我们编写的 Spark 应用程序就运行在 Driver 上,由Driver 进程执行;

备注:Spark Application 在集群上作为独立的进程组来运行,在 main程序(称之为 driver 程序) 中通过 SparkContext 来协调。

Master:是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责;

Worker:是一个进程,一个 Worker 运行在集群中的一台服务器上,主要负责两个职责,一个是用自己的内存存储 RDD 的某个或某些 partition;另一个是启动其他进程和线程(Executor),对 RDD 上的 partition 进行并行的处理和计算。

Executor:是一个进程,一个 Worker 上可以运行多个 Executor,Executor通过启动多个线程(task)来执行对 RDD 的 partition 进行并行计算,也就是执行我们对 RDD 定义的例如 map、flatMap、reduce 等算子操作。

参考:

https://blog.csdn.net/qq_37163925/article/details/106260434

https://blog.csdn.net/shuimofengyang/article/details/100124601

标签: none

添加新评论