spark 的俩种 任务提交方式

本文详细介绍了Spark任务的两种提交方式——Standalone集群的client和cluster模式,以及Yarn的客户端和集群提交模式。在Standalone模式下,client模式会导致网卡流量激增,而cluster模式则能避免此问题。在Yarn环境下,客户端提交模式的Driver运行在客户端,而集群提交模式中Driver运行在ResourceManager分配的Application Master上,适合生产环境。

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

Spark提交方式

 

Standalone client测试环境:

Hadoop

 

./spark-submit

--master spark://node1:7077

--class 类路径  

../执行文件的路劲  

执行任务数

 

master节点:

掌握worker节点的资源信息

worker节点:

 

Driver(sparksubmit)客户端:

客户端,向master申请application资源。启动executor(执行者)进程,并发送task任务到worker 节点,回收结果。

同时启动任务,会造成流量的网卡激增。

使用测试环境

 

Running  applications

可以看到运行的任务,日记,结果

Shell提交任务,看到运行的任务提交,操作日志,结果

看不到driver,客户端充当了driver

 

 

集群提交:cluster

 

./spark-submit

--master spark://node1:7077

--deploy-mode client

--class 类路径  

../执行文件的路劲  

执行任务数

 

Master

随机选一台机器,启动driver。

返回一批符合的资源需求的worker节点

Worker(driver)

向masters申请application资源。启动executor执行task任务。

客户端

向master,申请启动driver。

  1. 客户端向master申请启动driver
  2. master随机选择worker的一台机器启动driver.
  3.  Worker节点向woker申请application资源
  4. Master返回给worker节点,一批符合资源
  5. Worker上的driver发送任务,并且启动exexutor执行task任务。
  6. 回收结果。

适用于正式环境,不会造成网卡流量激增。

 

 

Running applications:

Running drivers:

Shell提交任务,看不到运行的任务提交,操作日志,结果

 

区别:客户端提交和集权提交的区别: 1.客户端向master申请启动driver

                                   2.master随机选择一台机器启动driver.

 

 

Yarn提交方式

启动的资源zookeeper,hadoop

 

客户端提交:

 

./spark-submit

--master yarn

 --class 类路劲 

../文件路径

任务数

  

客户端(driver)

启动driver,向RM申请启动Application。向executor,发送任务,会收结果

ResourceManager

随机选一台机器启动ApplicationMaster。RM向AM返回资源的NM节点。

NodeManager

向RM申请application资源。AM启动executor,

 

 

 

 使用测试环境,

Shell执行,可以看到执行任务,结果

步骤:

  1. 启动服务器上的driver,向RM提交发送application
  2. RM随机在集群上启动一台NM(AM)
  3. NM(AM启动后),向RM申请包含NM节点资源的container,
  4. RM返回NM资源信息
  5. NM(AM(Driver))启动executor,
  6. Excecutor启动以后,会反向注册给Driver,driver发送任务task给execuotr,执行情况和返回结果给driver。

 

 

集群提交:

./spark-submit

--master yarn

--deploy-mode cluster

--class  类路径

../文件路径

执行任务数

 

客户端

申请启动driver()。

RM

随机选NM上的一台机器启动driver。返回NM包含container资源的节点

NM(AM,driver)

向RM申请applicationMaster资源。NM启动executor,发送任务,回收结果

 

使用于生产环境,在客户端看不到任务的执行情况,不会造成流量激增。

 

步骤:

  1. 客户端向RM发送application,请求启动AM
  2. RM随机启动一个NM结点,启动AM
  3. NM(AM启动后,(相当于driver端)),向RM请求container包含NM资源的信息,
  4. RM接到请求,返回一批NM资源
  5. NM(AM启动executor,executor启动后会反向注册给driver)
  6. driver发送task任务,到executor执行

 

 

Yarn客户端提交和集群提交区别:

  1. 客户端的Driver在客户端,结果也返回给客户端。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值