Spark 三种作业提交方式

本文深入解析了Spark的四种部署模式:Local、Standalone、Yarn-Client和Yarn-Cluster,对比了它们之间的区别,包括ClusterManager的角色和作用,以及在不同模式下Driver和Executor的启动和运行方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Local 本地方式:直接在 IDEA 中运行程序,无需打包发布到集群中,方便测试。
  • Standalone 方式:Spark 原生的 Master/Worker 集群,
  • Yarn 方式:Hadoop 的 Yarn 集群,recourseManager/NodeManager 集群,通过 Yarn 来进行资源的和管理调度。

本地方式是在本地 JVM 中启动一个进程来模拟运行环境,多个线程进行作业运行,主要用于开发测试。

Standalone,Yarn, 两种方式的区别在于 ClusterManager 的不同,ClusterManager 的作用在于进行各个进程的启动管理,资源的调度。

Standalone的 ClusterManager 是 Master,Yarn是 RecourseManager
两种Depoly Mode(模式):Client,Cluster.
对于不同的 Depoly Mode 模式来说, 区别仅在于启动 Driver 的机器是否在提交作业的机器,若不是,则会有集群管理器分配 Worker 启动 Driver,用于测试环境,但数据量较大的时候,会产生较高的 I/O。

脚本:
standalone:spark-submit --master spark://IP:PORT
yarn-client:spark-submit --master yarn-client
yarn-cluster:spark-submit --master yarn-cluster

standalone 方式,是要在 spark-submit 中,用 --master 指定 Master 进程的 URL。其次,使用 standalone client 模式或 cluster 模式,是要在 spark-submit 中,使用 --deploy-mode client/cluster 来设置默认,如果你不设置 --deploy-mode client/cluster,那么就是 client 模式Standalone

Standalone Client 这种提交模式,主要在于可以在本机 (提交任务的机器) 看到日志输出,用于排查错误,他会在本机上启动 Driver 进程然后请求 Master 分配资源 Executor 线程来执行任务,Master 在 Worker 上启动 Executor 之后注册到 Driver,Driver 会分发 Jar 到各个 Executor, 并将 SparkContext 创建的 Task 发送到 Executor 上执行。

Yarn
Yarn 集群的 Cluster Manager 是 RecourceManager 简称 RM,类似于 Master, 其 NodeManager 相当于 Worker 简称 NM。Yarn
Client
任务提交会在本机上启动 Driver,然后请求 RM 启动 SparkApplicationMaster(Driver),Driver 启动之后请求 RM 分配 Container, 启动 Executor,Executor 启动之后会注册到 Driver 中,Driver 中的 SparkConetxt 会发送 task 给 Executor 执行。

Yarn Cluster
YarnCluster 与 Client 不同的是在提交之后请求 RM 启动 ApplicationMaster,RM 分配 Container 在 NM 启动一个 AM,AM 启动之后注册到 RM 中并连接其他的 NM 启动 Executor。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值