Spark----Spark 在不同集群中的架构

本文深入探讨了Spark在Standalone和YARN两种集群环境下的运行过程,包括Spark On StandAlone的Driver运行位置、Task Scheduler的工作方式,以及Spark On YARN的YARN-Client和YARN-Cluster模式的差异,详细阐述了各模式的启动流程和资源管理机制。
摘要由CSDN通过智能技术生成

Spark 注重建立良好的生态系统,它不仅支持多种外部文件存储系统,提供了多种多样的集 群运行模式。部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当以分布式集群部署的时候,可以根据自己集群的实际情况选择 Standalone 模式(Spark 自带的模式)、YARN-Client 模式或者 YARN-Cluster 模式。Spark 的各种运行模式 虽然在启动方式、运行位置、调度策略上各有不同,但它们的目的基本都是一致的,就是在 合适的位置安全可靠的根据用户的配置和 Job 的需要运行和管理 Task。 

1、Spark On StandAlone 运行过程 

Standalone 模式是 Spark 实现的资源调度框架,其主要的节点有 Client 节点、Master 节点和 Worker 节点。其中 Driver 既可以运行在 Master 节点上中,也可以运行在本地 Client 端。当 用 spark-shell 交互式工具提交 Spark 的 Job 时,Driver 在 Master 节点上运行;当使用 spark-submit.sh 工具提交 Application 或者在 Eclipes、IDEA 等开发平台上使用 new SparkConf().setMaster(“spark://master:7077”)方式运行 Spark 任务时,Driver 是运行在本地 Client 端上的。 

运行过程文字说明 

1、我们提交一个任务,任务就叫 Application 
 
2、初始化程序的入口 SparkContext:   2.1 初始化 DAG Scheduler 2.2 初始化 Task Scheduler 
 
3、Task Scheduler 向 master 去进行注册并申请资源(CPU Core 和 Memory) 
 
4、Master 根据 SparkContext 的资源申请要求和 Worker 心跳周期内报告的信息决定在哪个 Worker 上分配资源,然后在该 Worker 上获取资源,然后启动 StandaloneExecutorBackend; 顺便初始化好了一个线程池 
 
5、StandaloneExecutorBackend 向 Driver(SparkContext)注册,这样 Driver 就知道哪些 Executor 为他进行服务了。到这个时候其实我们的初始化过程基本完成了,我们开始执行 transformation 的代码,但是代码并不会真正的运行,直到我们遇到一个 action 操作。生成 一个 job 任务,进行 stage 的划分 
 
6、SparkContext 将 Applicaiton 代码发送给 StandaloneExecutorBackend;并且 SparkContext 解析 Applicaiton 代码,构建 DAG 图,并提交给 DAG Scheduler 分解成 S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值