Spark架构

Spark官网展示了如下的集群运行架构

Spark集群运行架构

其中涉及到以下概念:

概念 解释
Application 基于Spark的用户程序,包含了1个Driver Program和若干个Executor进程
Driver Program 运行Application的main()函数并且创建SparkContext,通常用SparkContext代表Driver Program;监听特定端口以保证和executor的通信
SparkContext Spark代码中定义的一个对象,提供driver program的功能
Executor Application运行在worker node上的一个进程,负责运行Task,并且将数据存在内存或者磁盘上,该进程在application运行期间一直驻留;每个Application都有各自独立的executors,不同application的executor若不通过外部存储,是无法进行数据交互的
Cluster Manager 在集群上获取资源的外部服务,Spark支持Spark Standalone, YARN, Mesos三种cluster manager;但Spark并不依赖于cluster manager,它只需要能获取executor进程并保持通信就可以了
Worker Node 集群中任何可以运行application代码的节点
Task 被送到某个executor上的工作单元;不同application的task运行在不同的JVM中,有着良好的隔离
Job 包含多个Task组成的并行计算,往往由Spark action催生
Stage 每个Job会被拆分很多组task,每组任务被称为Stage,也可称TaskSet
RDD Spark的基本计算单元,可以通过一系列算子进行操作(主要有Transformation和Action操作)
DAG Scheduler 根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler
Task Scheduler 将stage提交给worker nodes运行并回报结果
Client Deploy Mode 在client mode下,drive program直接运行在spark-submit进程中,因为driver与worker node的网络通信是非常重要的开销,所以提交application的主机需要和work node处在同一物理网络中,以获得较小的网络延迟;同时,需要实时交互的应用如Spark Shell,是比较适合用client mode的
Cluster Deploy Mode 在cluster mode下,driver program进程由cluster管理,以保证与worker node通信时网路延迟小,所以当用户提交application的设备在集群的网络之外(网络延迟大)的时候,需要用cluster mode来部署;目前YARN只支持Python的cluster部署,而mesos还不能支持cluster部署


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值