Spark 基本概念

本文介绍了Spark的基本概念,包括Application、Driver、Executor、SparkContext和Cluster Manager的角色。Application涵盖不同启动方式,如pyspark、spark-submit等。Driver负责运行Main函数并创建SparkContext,Executor执行任务。SparkContext是应用上下文,TaskScheduler和DAGScheduler由其管理。Cluster Manager根据模式获取资源,Worker Node执行计算。RDD是分布式数据集,DAG表示计算流程,Job和Stage定义了任务执行,Task是执行单位。

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

 #  官网部分解释 Cluster Mode Overview - Spark 3.3.0 Documentation

Application:指的是用户编写的Spark应用程序/代码, 一个完整的main方法程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码,

  如main方法中有WordCount代码有哪些命令会产生一个Application

  • spark/bin/pyspark 【输入exit()就退出】

  • spark/bin/spark-submit 【main方法跑完就退出】

  • spark/bin/spark-shell 【输入:quit就退出】

  • spark/bin/spark-sql 【输入exit; 就退出】

  • 在Pycharm中写完代码,右键执行run

  • spark/sbin/start-thriftserver.sh

  • 只要上面的命令都运行,就可以在webui页面查看运行情况。(一般运行时页面端口是4040,也可能会轮询到4041等)

  • 只要上面的命令都运行完毕或强行突出,那么Application就结束。同时webui运行时页面也退出。可以去Spark历史日志页面查看,端口是18080。 

Driver:Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等;

Executor:是运行在工作节点Worker Node上的进程,负责运行任务,并为应用程序存储数据,是执行分区计算任务的进程,

执行由Driver发送过来的lambda或def函数,分布式代码

  • 比如 rdd1.map(lambda x:x+1) 其中的lambda函数会被作为task分发到【Executor的core】上运行。一个RDD的分区有多少个,则就有多少个task,他们lambda逻辑一样,但计算的数据块不一样。

SparkContext: 任何Spark 的Application必须有一个SparkContext上下文, Spark运行时的上下文环境。旗下自动创建了2个对象,TaskScheduler和DAGScheduler;

Cluster Manager:指的是在集群上获取资源的外部服务,Standalone模式下由Master负责,Yarn模式下ResourceManager负责;

Worker Node:工作节点,是拥有CPU/内存的机器,是真正干活的节点,对于Standalone模式,就是Worker进程,对于Yarn模式就是NodeManager进程;

RDD:Resilient Distributed Dataset弹性分布式数据集,是分布式内存的一个抽象概念;

DAG:Directed Acyclic Graph有向无环图,从加载数据到Action输出操作的计算链条,形成的RDD的执行流程图---静态的图 ,反映RDD之间的依赖关系和执行流程;

Job:作业,按照DAG执行就是一个作业,Job==DAG;

Stage:阶段,是作业的基本调度单位,同一个Stage中的Task可以并行执行,多个Task组成TaskSet任务集,也是DAG中,根据宽依赖划分出来的一个个的执行阶段 ;

Task:任务,运行在Executor上的工作单元,1个Task计算1个分区,包括pipline上的一系列操作,同一个Stage中的多个Task可以并行执行(每一个Task由线程执行),所以也可以这样说:Task(线程)是运行在Executor(进程)中的最小单位 ;

 TaskSet:任务集,就是同一个Stage中的各个【Task】组成的集合。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值