Spark 的集群 deploy 模式主要有三种:local 模式、standalone 模式和分布式模式。

1. local 模式

在 local 模式中,Spark 运行在本地机器上,使用本地的 CPU 和内存资源。这种模式适合于在开发和测试阶段使用,不需要连接到集群。在本地模式下,Spark 将任务拆分为多个执行线程,以并行的方式在本地机器上执行。此模式非常简单,易于使用,可以通过设置环境变量 SPARKMASTERIPSPARKMASTERPORT 来配置本地模式。

2. standalone 模式

standalone 模式是一种简单的集群模式,Spark 应用程序通过 Spark 自带的 Master 进程来进行提交。在此模式下,可以将 Spark 应用程序部署到一个由多个独立机器组成的集群上。Master 进程负责调度集群中的资源,并将任务分配给 Worker 进程进行执行。可以使用 .sbt-mer.sh 命令启动 Master 进程,并使用 `./sbin/start-worker.sh Workerspark-submit` 命令,将应用程序提交给 Master 进程进行执行。

3. 分布式模式

分布式模式是 Spark 最常用的部署方式,可以将 Spark 应用程序部署到各种分布式计算框架中,如 Hadoop YARN、Apache Mesos 和 Kubernetes 等。在此模式下,Spark 应用程序将由集群管理器进行管理和调度。Spark Driver 程序运行在一个被指定的节点上,该节点将负责将 Spark 应用程序提交给集群管理器,并通过工作节点上的 Executor 来执行任务。可以使用 spark-mit 命令将应用程序提交到分布式集群中。

除了以上三种常见的部署模式外,Spark 还可以与其他工具和框架集成,如 Hive、HBase、Flink 等,以灵活地满足不同的需求。无论采用哪种部署模式,通过合理地配置集群资源和调优参数,可以实现更高效、更稳定的 Spark 应用程序执行。